Excel:非常に重いSUMIFSの束を最適化する

私はいくつかのデータを持っている

データ例:

  A    B   C   D
  Id   Id2 Id3 Val
  1    1   8   6
  1    2   7   7
  1    3   3   8
  1    4   6   4
  1    4   78  7
  1    1   2   9
  1    3   1   4
  1    4   3   6
  1    1   5   8
  1    4   7   2

すべての Id の特定の基準(Id2 = 4とId3 = 2など)に基づいて、100個の値を持つすべてのIdに対して合計された Val テーブルが重いのですべての Id のsumifsを再実行しないようにします。

これまで私がやってきたことは、

= SUMIFS(D:D, A:A, "=1", B:B, "=4", C:C, "=2")
= SUMIFS(D:D, A:A, "=2", B:B, "=4", C:C, "=2")
= SUMIFS(D:D, A:A, "=3", B:B, "=4", C:C, "=2")
= SUMIFS(D:D, A:A, "=4", B:B, "=4", C:C, "=2") ... 

(もし私がsumifsの構文を正しく覚えていれば)

Id のsumifsを再実行することを避けるより速い方法はありますか?

4

2 答え

このように SUM をたくさん考えたいのであれば、ピボットテーブルを参照してください。

DSUM しかし、私はそれがSUMIFより速くなるとは思っていません。

3
追加された
一束ありがとう、私は3つのピボットテーブルを使用して終了し、彼らはデータ処理1000倍速く:)
追加された 著者 abcde123483,

また、配列式を実行することもできますまた、雷が速いはずです。

したがって、結果を表示する範囲を選択し、 F2 を押して最初の数式を入力する場所を入力します。次に、以下の配列の式を入力します。

= SUMIFS(D:D, A:A, "="&{1;2;3;4}, B:B, "=4", C:C, "=2")

または

= SUMIFS(D:D, A:A, "="&G1:G4, B:B, "=4", C:C, "=2")

G1 から G4 に反復処理する値があります。

これにより、複数回ではなく1回だけデータを取得し、複数回ではなくすべての値を1回返すようになります。

左から右に反復する場合は、配列のセミコロンの代わりにコンマを使用します。

配列式を入力するときは、次のように入力します。

Ctrl+Shift+Enter
2
追加された