【问题标题】:Using two conditions with a SUMIF function in Excel 2003在 Excel 2003 中使用带有 SUMIF 函数的两个条件
【发布时间】:2014-02-09 10:29:33
【问题描述】:

对于 Sheet1 上的给定行,我使用 SUMIF 函数来查看该行第一个单元格中的值是否在 Sheet2 中的历史值列表中。

这将基本上总结我的历史工作表上的所有值,并按我在 Sheet2 上的 A1 单元格名称对它们进行分组。

我需要第二个条件,这样我也可以按月对行进行分组,SUMIF 似乎不允许第二个条件或AND 连接第二个子句。

【问题讨论】:

标签: microsoft-excel microsoft-excel-2003 worksheet-function


【解决方案1】:

假设:

日期在 B 列中

行是 5:29

范围名称“历史”中的历史列表

要测试的月份在范围名称“rngMonth”中

=SUMPRODUCT((NOT(ISNA(MATCH(A5:A29,Historical,FALSE))))*(MONTH(B5:B29)=rngMonth)*(C5:C29))

【讨论】:

    【解决方案2】:

    尝试添加另一个 SUMIF 函数,排除那些您不想被汇总的单元格并将其从主 SUMIF 中删除。

    例如SUMIF(所有符合大标准的单元格) - SUMIF(所有符合小标准的单元格)。

    【讨论】:

      【解决方案3】:

      备用:在包含历史数据的工作表上,添加一列,将要用作组合条件的两列连接起来。例如,假设一个条件列的范围命名为“Month”,另一条件列的范围命名为“PersonName”:

      新列包含以下公式:

      =Month&" "&PersonName
      

      命名此列(例如,“条件”),然后在 SUMIF 中使用该范围名称。例如:

      =SUMIF(Criteria,"January Biff",ValsToBeSummed)
      

      【讨论】:

        【解决方案4】:

        使用这样的数组公式:

        {=sum(If(sheet2!A1:A50=sheet1!A1,if(sheet2!B1:B50=Sheet1!B1,Sheet2!C1:C50)))}
        

        基本上你将IF 语句嵌套在SUM 语句中,然后按Ctrl+Shift+Enter 使其成为数组公式。

        Introduction to Array ForumulasJon Fournier 发布)也是这方面的好资源。

        【讨论】:

          猜你喜欢
          • 2020-07-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多