excel - 如何根据多组 OR 条件对列求和?
问题描述
我有一个表,其中包含一个目标总和列 (ColA) 和三个要根据条件过滤的列。我一直在使用 SUMIFS 根据标准列 Cols B 到 D 计算 ColA 的总和,但是我注意到我没有正确执行此操作。需要注意的一件事是,每个条件列都有不同数量的条件(例如,B 列的 OR 条件比 C 多)
我现在的公式是:
SUM(SUMIFS(table[ColA], table[colB], {"val1", "val2", "val3"}, table[colC], {"val1", "val2"}, table[colD], {"val1", "val2", "val3", "val4"}))
手动检查基础表中的总和后,此公式的结果不正确。关于如何根据一组多个 OR 值对列求和的任何建议?
解决方案
假设您的表名为 Table1,从 A1 开始,带有标题,并且有 4 列宽。在右侧某处的单元格中,例如 G2,您可以输入以下公式:
=AND(OR(B2={"val1","val2","val3"}),OR(C2={"val1","val2"}),OR(D2={"val1","val2","val3","val4"}))
将 G1 留空,那么您的求和公式就是:
=DSUM(Table1[#All],1,G1:G2)
您还可以使用以下方法将标准公式分成三个单元格,每列一个单元格:
=OR(B2={"val1","val2","val3"})
=OR(C2={"val1","val2"})
=OR(D2={"val1","val2","val3","val4"})
在 G2:I2 中(要么将 G1:I1 留空,要么给它们与您的任何表头都不匹配的标签),然后使用:
=DSUM(Table1[#All],1,G1:I2)
推荐阅读
- c++ - std::enable_if ... else aka typename_if_else
- amadeus - Amadeus Master Pricer Travel Board - 按运营商搜索?
- java - 弹簧靴。@Transactional 方法调用 @Transactional(readonly=true) 方法
- react-native - 发出获取请求以从谷歌图书 api 获取图书列表
- reactjs - 收到我的函数未定义的错误
- reactjs - Jest-dom 给出错误“TypeError: expect(...).toHaveStyle is not a function”
- reactjs - React-Admin- ArrayInput/SimpleFormIterator- 如何识别当前记录并将其传递给自定义组件
- typescript - 简洁地定义字符串及其联合类型
- php - 如何从 webhook 中获取数据?
- javascript - 从用户输入保存的 JS 对象打印每个费用名称和金额