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

Excel 当至少有一行符合条件时,求和所有行,excel,Excel,我的数据库如下: 当至少一个组的“包含”标志为Y时,我在尝试按组求和所有数量时遇到问题;也就是说:如果组3中至少有一行上有Y,则对组3中的所有行求和,不管是否包括其余的行 输出应如下所示: 谢谢 您需要使用数组函数来解决这个问题。要输入和数组函数,请按通常的方式键入函数,然后按Ctrl+Shift+enter键,而不是按enter键。(苹果键盘有所不同,但我没有苹果。) 我将解释如何将函数组合在一起,然后在最后将所有函数组合在一起 首先,我想要一个组号数组,在包含的列中至少有一个“Y”。该数

我的数据库如下:

当至少一个组的“包含”标志为Y时,我在尝试按组求和所有数量时遇到问题;也就是说:如果组3中至少有一行上有Y,则对组3中的所有行求和,不管是否包括其余的行

输出应如下所示:


谢谢

您需要使用数组函数来解决这个问题。要输入和数组函数,请按通常的方式键入函数,然后按Ctrl+Shift+enter键,而不是按enter键。(苹果键盘有所不同,但我没有苹果。)

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

首先,我想要一个组号数组,在包含的列中至少有一个“Y”。该数组是由IF(B2:B14=“Y”,A2:A14,0)创建的。在示例案例中,结果将是
{0,0,0,0,0,3,…etc}

接下来,我使用
匹配(A2:A14,IF(B2:B14=“Y”,A2:A14,0))功能标记在组号列表中具有条目的每个分组行

因为它使用的是精确匹配,所以在没有匹配时会产生错误<代码>ISERROR(匹配(A2:A14,IF(B2:B14=“Y”,A2:A14,0),0))
在没有匹配时给我一个true,在有匹配时给我一个false,所以我否定它<代码>非(iError(匹配(A2:A14,IF(B2:B14=“Y”,A2:A14,0),0))

另一个IF将其转换为1或0。
IF(不匹配(匹配(A2:A14,IF(B2:B14=“Y”,A2:A14,0))),1,0)

最后,我使用SUMPRODUCT将其与数量结合起来:
=SUMPRODUCT(C2:C14,IF(非)(iError(匹配(A2:A14,IF(B2:B14=“Y”,A2:A14,0))),1,0))

同样,请记住按住Ctrl+Shift+Enter键以使此操作正常


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

请花一些时间通过以下方式了解堆栈溢出:阅读关于如何提问、如何回答问题、如何接受答案等。您将从该网站获得更多信息,如果您服务得好,它将为您提供更好的服务。我不确定您的问题为何被否决,人们不告诉你该怎么做就这么做是很不礼貌的。看起来你没有做任何工作,但我可以看出你做了,所以没有问题。将样本数据作为文本而不是图像会有所帮助,但我不认为这是否决投票的理由。拥有文本可以让人们更容易地复制它,并创建一个测试环境。有些人喜欢看到一个真实的问题,但我觉得你的“问题”很清楚。这就是我想要的!我需要一种方法来创建{0,1}数组,但无法找到解决方案。但是,有没有办法不使用iSeries来创建它?我需要将其应用于大型数据库,可能会影响计算性能。对不起,如果我对这个问题的理解有点错误,我在哪里犯了错误?谢谢我不知道如何避免使用iSeries。