我可以使用SUMPRODUCT来完成此操作吗?

需要基于一个值是否在一个列中,而其中一个值是否在另一个列中,或者反之亦然,来求和范围。 例如我有下表:

ABCDMCC 1 FCC 2 SNC 3 SNN 4 M - C 5 NCC 6 MCN 7 

如果(列A包含“M”或“S”)AND((列B包含“C”和列C包含“C”或“N”或“ – ”)或(列C包含“C”AND列B包含“C”或“N”或“ – ”))然后总和D列

所以从我的表中我的结果是1 + 3 + 5 + 7 = 16

您可以像这样使用SUMPRODUCT

=SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"M","S"},0)*MATCH(B2:B10&"^"&C2:C10,{"C^C","C^N","C^-","N^C","-^C"},0))+0,D2:D10)

MATCH用于检查列A中的两个有效可能性,然后检查连接列B和C的所有5种可能性 – 如果满足这些条件,则列D将被求和。 根据需要扩展列范围,但最好不要使用整列

或者像这样SUMIFS更短:

=SUM(SUMIFS(D:D,A:A,{"M";"S"},B:B,{"C","C","C","N","-"},C:C,{"C","N","-","C","C"}))

对于该版本,您可以使用整个色谱柱而不会损失效率。

请注意,在这个版本中,数组常量中的所有分隔符都是逗号EXCEPT ,{“M”;“S”}中的分号必须是这样的

在这里输入图像说明

如果所有的条件都是真的,我会添加一个第五列,当前行的条件返回D的值,否则返回0

 =Iif(AND(Or($A1 = "M", $A1 = "S"),OR(AND($B1 = "C",Or($C1 = "C",$C1 = "N",$C1 = "-")), AND($C1 = "C",OR($B1 = "C",$B1 = "N",$B1 = "-")))),$D1,0) 

然后在一个单元格的地方write =sum($E:$E) 。 按照你的例子,我得到了16个。