0

非常に大きな (たとえば、100,000 行) の Excel テーブルがあり、その中にいくつかの列 (他にも列があります) があります。

Person ID |   Date   | Number |
0043       03/20/2006  6
0043       03/20/2006  3.21
1478       04/01/2006  9.87
0021       04/12/2006  0.23
0101       04/12/2006  3.14
1042       04/12/2006  11.13

私がやりたいことは、テーブルを調べて、特定の人物 ID の日付ごとに数字を合計することです。意味: 現在、一部のエントリは同じ日付に対して 2 回リストされていますが、その日付のその人物の数値の「合計」が本当に必要です (2 つの別々の行ではありません)。

後で、これらの「合計結果」について、「3 を超えて 6 未満の数字を持つ人は何人いるか」などの分析を実行します。

個人IDごとに日付ごとに値を合計し、結果の合計を表示する新しい列を提供する、実行できる簡単な関数はありますか? または、これを簡単に実行できる VB プログラムはありますか?

最終的に、結果を表示するための新しい列を作成したいと考えています。この新しいテーブルは次のようになります。

Person ID |   Date   | Number | Total Per ID Per Date |
0043       03/20/2006  6        9.21
0043       03/20/2006  3.21     N/A
1478       04/01/2006  9.87     9.87
0021       04/12/2006  0.23     0.23
0101       04/12/2006  3.14     3.14
1042       04/12/2006  11.13    11.13

考えや提案はありますか?Visual Basic または Excel 関数をチェーンしますか? 与えられた答えを簡単にするために、列 (個人 ID、日付など) が AC (結果のテーブルの場合は AD) であり、もちろん行 1 ~ 7 であると仮定します。

ありがとうございました!

4

1 に答える 1

1

Doug Glancy が示唆しているように、探しているものはピボット テーブルで比較的簡単に作成できます。これを行う1つの方法を次に示します。

まず、データの元の順序を維持するために、Sort というラベルの付いた列をデータ テーブルに追加します (列 E など)。新しい PersonID ごとに 1 ずつ増加する昇順のインデックス番号を入力します。したがって、セル E2 と E3 の並べ替え番号は 1、E4 は 2 などになります。これは、数式を使用して簡単に行うことができます。この行 = 前の行のソート番号、そうでなければソート番号 n この行 = 前の行のソート番号 + 1。

データのピボット テーブルを作成します。これを行うには、データ テーブル内のセルの 1 つを選択し、リボンから [挿入]、[ピボット テーブル] を選択します。ピボット テーブルを新しいワークシートに配置します。

新しいワークシートの「ピボットテーブル フィールド リスト」で、並べ替え、PersonID、日付、および数値を行ラベルとして設定し、数値を値フィールドとして設定します (これは、ピボット テーブルの「数値の合計」列として表示されます)。

ピボットテーブル ツール バーの [デザイン] タブから:

  • ピボット テーブルを「表形式」(レポート レイアウト) に設定します。
  • 小計をオフにする (小計)

ピボット テーブルのこれらの列を右クリックし、[フィールド設定] の [レイアウトと印刷] で適切なオプションを選択して、PersonID フィールドと Date フィールドを繰り返します。

ちょっとしたトリックで、必要な最終的な合計列を取得できます。

  • [数値の合計] 列を設定して、行の合計に対する割合として値を表示します (列を右クリックして、そのオプションを選択します)。
  • セル F3 にラベル「Total per ID per Date」を入力して、ピボット テーブルに新しい列を追加します。(デフォルトでは、ピボット テーブルは B3:E9 にあります)。
  • セル F4 に次の数式を入力し、セル F9 にコピーします。

    =IF(AND(B4=B3,C4=C3),"NA",D4/E4)

    この数式は、各 PersonID の合計を計算し、PersonID と Date が繰り返される場合は「NA」を返します。

  • 最後に、Sort 列と Sum of Number 列を非表示にします。

于 2013-02-07T06:01:12.240 に答える