Excel:根据条件对一列求和

Excel:根据条件对一列求和

我有一张包含如下列的 Excel 表:

A    B    C    D
1    1    X    INT
2    1    X    INT
1    2    Y    INT
2    2    Y    INT
3    2    Y    INT
1    3    Z    INT
2    3    Z    INT
3    3    Z    INT
4    3    Z    INT

D 列包含我想要求和的值。A 列始终从 1 开始计数,具体取决于它所在的组(B 列),最大值为 2(组 1)、3(组 2)或 4(组 3)。假设场景 1 是“求和所有 INT”,如果 C=X 且最大值为 2。C 列只是必须满足的一个条件。当然,一切都可以有多种变化。

可能它必须与 =SUMIF() 一起工作,但目前我能想到的最好的方法是 =SUMIF(D:D, C:C, "X")

但是,如果有另一个组具有条件 X,但 A 列中可能有更多值,那么这将不起作用。

我的想法是使用 COUNTIF() 并查看一个组是否有总共 2、3 或 4 个值。

但是我怎样才能使它更加通用呢?

多谢!

[编辑:] 我还想到了一种使用 AND()、OR() 和 NOT() 进行检查的方法,对于每个最多有 3 个计数的组(col. A),是否存在 1、2、3,但没有 4、5、6、7、8、9、10、11、12。

组数 (C) 可以是无限的(尽管通常不超过 7)。列 a 的计数为 3、7 或 12 正如我所提到的,可能存在一个条件 X 的组,该组有 3 个计数,另一个条件 X 的组有 7 个计数,对于这两种情况,列 D 都会根据条件进行求和。

问题是组 X 有计数 1、2(最大为 2),而另一个可能的组 F 也可能有条件 X,但有 12 个计数。这意味着计数 1 和 2 可能不会被计数两次。

答案1

您将需要 SUMPRODUCT

=SUMPRODUCT(D1:D9,(F2=COUNTIFS(B1:B9,B1:B9))*(C1:C9=F1)

这将逐行迭代这些值,返回 D 中的值,其中 C 等于期望约束,X在本例中,B 的计数等于项目数。

在此处输入图片描述

相关内容