在 Excel 2003 中使用 SUMIF 函数的两个条件

在 Excel 2003 中使用 SUMIF 函数的两个条件

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

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

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

答案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 使其成为数组公式。

数组公式简介(发布者乔恩·福尼尔) 也是这方面的良好资源。

相关内容