4

我有一些数据要求和,以符合某些条件

示例数据:

  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

现在,我希望基于某些标准(例如,Id2=4 和 Id3=2)为每个具有 100 个值的Id对每个 Id求和,但我想避免为每个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 回答 2

3

如果您想以SUM这种方式计算很多 s,最好使用数据透视表来完成。

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

于 2011-12-18T21:11:31.073 回答
2

你也可以做一个数组公式,它也应该快如闪电。

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

这将使它只抓取数据一次而不是多次,并将返回所有值一次而不是多次。

如果要从左到右迭代,请在数组中使用 acomma而不是 a 。semicolon

当您输入数组公式时,请以这种方式输入:

Ctrl+Shift+Enter
于 2011-12-19T14:53:25.760 回答