excel - 如果一个或多个对象存在于多列中,如何返回数组的总和
问题描述
这是我的问题:
我需要在二维数组中使用或逻辑搜索包含任何给定子字符串的任何行,并将该行的总和列相加作为结果。
如果列名称或列描述包含任意数量的条件,我有一个列,小时,我想求和。到目前为止,我的(丑陋的)解决方案是(请原谅格式):
SUM(SUMIFS(B16:B100,C16:C100,{"(asterisk)Crit1(asterisk)","(asterisk)Crit2(asterisk)"}),SUMIFS(B16:B100,D16:D100,{"(asterisk)Crit1(asterisk)","(asterisk)Crit2(asterisk)"}))
这本身还不错,而且只有 2 列并不可怕。但是,你们中的一些人可能已经看到,如果标准在两列中,这可能会导致重复计数,这是我不希望的。
所以我的问题是:我可以这样做吗?我可以在多列中搜索条件,如果它们存在于任何列中,那么只对总和范围求和一次?
解决方案
尝试(未经测试,因为您没有显示数据):
=SUM(B16:B100*((ISNUMBER(SEARCH({"Crit1","Crit2"},C16:C100))+ISNUMBER(SEARCH({"crit3","Crit4"},D16:D100)))>0))
添加比较就像做一个OR
; 通过将比较的总和与零进行比较,我们确定是否存在任何单个。
如果您有可能被错误计算的标准,则可能需要修改公式。
例如:
请注意,这将返回,等Crit1
的匹配项。根据您的实际数据,可能会修改公式;或者 UDF 可能更实用。Crit1
Crit101
推荐阅读
- database - 从 Oracle 到 Unix 的 Unicode 字符 (urdu)
- ios - 在没有 iDevice 的 iOS 中测试统一游戏
- maven - 测试 Maven 子模块
- python-3.x - 在 Odoo 环境中模拟?
- vim - Vim 出乎意料地变慢了
- webpack - 当 webpack 入口属性被赋予一个带有字符串数组作为值的对象时,这意味着什么?
- react-native - 运行反应原生项目时产生 cmd.exe Enoent 错误
- azure - 如何为参数与体内配置 Azure AD Oauth2 令牌端点?
- linux - 是否可以验证 tar.gz 文件是否已损坏
- java - java - 通过来自xml的hashmap计算单词