首页 > 解决方案 > 如果一个或多个对象存在于多列中,如何返回数组的总和

问题描述

这是我的问题:

我需要在二维数组中使用或逻辑搜索包含任何给定子字符串的任何行,并将该行的总和列相加作为结果。

如果列名称或列描述包含任意数量的条件,我有一个列,小时,我想求和。到目前为止,我的(丑陋的)解决方案是(请原谅格式):

SUM(SUMIFS(B16:B100,C16:C100,{"(asterisk)Crit1(asterisk)","(asterisk)Crit2(asterisk)"}),SUMIFS(B16:B100,D16:D100,{"(asterisk)Crit1(asterisk)","(asterisk)Crit2(asterisk)"}))

这本身还不错,而且只有 2 列并不可怕。但是,你们中的一些人可能已经看到,如果标准在两列中,这可能会导致重复计数,这是我不希望的。

所以我的问题是:我可以这样做吗?我可以在多列中搜索条件,如果它们存在于任何列中,那么只对总和范围求和一次?

标签: excel

解决方案


尝试(未经测试,因为您没有显示数据):

=SUM(B16:B100*((ISNUMBER(SEARCH({"Crit1","Crit2"},C16:C100))+ISNUMBER(SEARCH({"crit3","Crit4"},D16:D100)))>0))

添加比较就像做一个OR; 通过将比较的总和与零进行比较,我们确定是否存在任何单个。

如果您有可能被错误计算的标准,则可能需要修改公式。

例如:

请注意,这将返回,等Crit1的匹配项。根据您的实际数据,可能会修改公式;或者 UDF 可能更实用。Crit1Crit101


推荐阅读