Excel:优化一堆非常重的SUMIFS

时间:2011-12-18 21:01:04

标签: 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的 Val 总和,基于某些标准(例如Id2 = 4和Id3 = 2),每个 Id 有100个值,但是我想避免为每个 Id 重新运行sumif,因为表格很重。

到目前为止我一直在做的是

= 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") ... 

(如果我记得正确的sumif语法)

是否有更快的方法可以避免重新运行每个 ID 的sumif?

2 个答案:

答案 0 :(得分:3)

如果您想以这种方式计算大量SUM,最好使用pivot table

您也可以尝试DSUM,但我怀疑它会比SUMIF更快。

答案 1 :(得分:2)

你也可以做array formula,这也应该是闪电般的。

因此,选择您想要结果的范围,然后按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")

其中G1G4包含您想要迭代的值。

这样做只会抓取数据一次而不是多次,并且会返回所有值一次而不是多次。

如果您想从左向右迭代,请在数组中使用comma而不是semicolon

输入数组公式时,请按以下方式输入:

Ctrl+Shift+Enter