【问题标题】:How do I sum a column based on multiple sets of OR criteria?如何根据多组 OR 条件对列求和?
【发布时间】:2021-05-05 18:58:11
【问题描述】:

我有一个表,其中包含一个目标总和列 (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 值对列求和的任何建议?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    你需要做一个 SUMPRODUCT 会很长:

    =SUMPRODUCT(table[ColA]*
      ((table[colB]="val1")+(table[colB]="val2")+(table[colB]="val3")>0)*
      ((table[colC]="val1")+(table[colC]="val2")>0)*
      ((table[colD]="val1")+(table[colD]="val2")+(table[colD]="val3")+(table[colD]="val4")>0))
    

    要理解,* 等价于AND+ 等价于OR

    【讨论】:

      【解决方案2】:

      假设您的表格名为 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)
      

      【讨论】:

      • 所以它确实有同样的限制。没有辅助列就无法完成。
      • @ScottCraner 这是一个辅助单元格,而不是列。 :) 所有 D 函数都需要一个标准 范围
      • 啊,我明白了。
      【解决方案3】:

      您可以尝试使用嵌套在SUMPRODUCT() 中的MATCH()

      F1中的公式:

      =SUMPRODUCT(ISNUMBER(MATCH(B2:B6,{"Val1","Val2","Val3"},0)+MATCH(C2:C6,{"Val1","Val2"},0)+MATCH(D2:D6,{"Val1","Val2","Val3","Val4"},0))*A2:A6)
      

      【讨论】:

        猜你喜欢
        • 2021-01-25
        • 2019-10-18
        • 2021-10-12
        • 2022-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-17
        相关资源
        最近更新 更多