我有一个如下数据库:
当至少一个组的“ Included”标志为Y时,尝试按组对所有数量求和时遇到问题;也就是说:如果第3组的至少一行上有Y,请将第3组的所有行相加,无论是否不包括其余的行。
输出应如下所示:
谢谢!
答案 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中进行了测试,效果很好。