如果一个或多个对象跨多列存在,如何返回数组的和



这是我的问题:

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

我有一个列Hours,如果列Name或列Description包含任意数量的条件,我想对其求和。到目前为止,我的(丑陋的(解决方案是(请原谅格式(:

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

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

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

Try(未测试,因为您没有显示任何数据(:

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

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

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

例如:

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

最新更新