Excel - (数组公式)求和多个条件的差异

时间:2016-03-30 03:58:45

标签: excel sum array-formulas

我需要了解如何(通过数组公式)根据多个标准总结结果。我知道有很多关于这个问题的问题已经回答了,但是我的问题似乎有所不同,所以我所知道的解决方案已经不能用了。

例如,请参阅下表。我想要做的是对所有类型A的Val进行求和,其中同一天没有类型C. (即第5天和第7天)

Day     Type    Val
1       A       5
1       B       6
1       C       9
2       B       2
2       A       8
2       C       3
3       C       4
3       B       2
3       A       2
4       A       5
4       B       9
4       C       8
5       A       7
5       B       5
6       A       6
6       B       3
6       C       4
7       A       7
7       B       9

2 个答案:

答案 0 :(得分:0)

Result

J2中的1个单元格数组公式为:

=SUM((B2:B20="A")*C2:C20*ISERROR(MATCH(A2:A20,IF(A2:A20&B2:B20=A2:A20&"C",A2:A20),0)))

为了理解发生了什么,我使用辅助列创建了I2公式。 “_S1”,“_ S2”和“_S3”是标题下方的命名范围。

I2是正常公式

=SUMPRODUCT(_S1,_S3)

_S1是数组公式

=(B2:B20="A")*C2:C20

这里我只返回类型“A”的值和其他所有的零。

_S2是数组公式

=IF(A2:A20&B2:B20=A2:A20&"C",A2:A20)

这里我创建了一个带有日期编号的范围,其中我有一个“C”和一些额外的FALSE。

_S3是数组公式

=ISERROR(MATCH(A2:A20,_S2,0))*1

在这里,我尝试将A列中的一天与范围_S2中的“C-days”匹配。如果有匹配则返回0,否则返回1.

答案 1 :(得分:0)

我可以为这个很酷的公式提供一个稍微简化的版本。

=SUM((B2:B20="A")*C2:C20*ISERROR(MATCH(A2:A20,(B2:B20="C")*A2:A20,0)))