当至少一行符合条件时对所有行求和

时间:2018-11-14 17:52:27

标签: excel

我有一个如下数据库:

当至少一个组的“ Included”标志为Y时,尝试按组对所有数量求和时遇到问题;也就是说:如果第3组的至少一行上有Y,请将第3组的所有行相加,无论是否不包括其余的行。

输出应如下所示:

Expected output

谢谢!

1 个答案:

答案 0 :(得分:0)

您将需要使用数组函数来解决此问题。要输入和排列函数,请像平常一样键入一个函数,然后按Ctrl + Shift + Enter而不是Enter。 (Apple键盘有所不同,但我没有Apple。)

我将解释如何将函数组合在一起,然后最后将其组合在一起。

首先,我想要一组包含在“包含”列中至少有一个“ Y”的组号。该数组由.groupBy()创建。在示例情况下,结果将为IF(B2:B14="Y",A2:A14,0)

接下来,我使用{0,0,0,0,0,0,3,...etc}函数标记组号列表中具有条目的每个组行。

由于使用的是完全匹配,因此在没有匹配项时会产生错误。 MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0)在没有匹配项的情况下为真,在有匹配项的情况下为假,因此我将其取反。 ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0))

另一个IF将其转换为1或0。 NOT(ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0)))

最后,我使用SUMPRODUCT将其与数量结合在一起: IF(NOT(ISERROR(MATCH(A2:A14,IF(B2:B14="Y",A2:A14,0),0))),1,0)

同样,请记住按Ctrl + Shift + Enter可使此工作生效。

在Excel 2013中进行了测试,效果很好。