带有date和名称标准的SUMIFS …仅限于月份和年份

我正在尝试获取SUMIFS公式以检查date列,并仅汇总与标准date的匹配年份和月份相对应的值。 我也希望这个SUMIFS包含一个名称标准和date。 即

单元格A1: =SUMIFS('Sheet1'!O:O, 'Sheet1'!D:D, 'Sheet2'!DATE(B2), 'Sheet1'!E:E, "Name")

sheet1列O是和值的存储位置
sheet1列D是存储date值的位置
sheet2单元格B2是存储date比较标准的位置
sheet1列E是存储名称的地方
“名称”是我想要总和select的名称标准

任何有识之士将非常感激!

如果您为date创build了开始date和结束date,即可以使用此版本,则可以使用SUMIFS

 =SUMIFS('Sheet1'!O:O,'Sheet1'!D:D, ">="&EOMONTH('Sheet2'!B2,-1)+1, 'Sheet1'!D:D, "<"&EOMONTH('Sheet2'!B2,0)+1, 'Sheet1'!E:E, "Name") 

EOMONTH用于获取相关月份的开始和结束date,然后您的SUMIFS根据您的其他标准总结正确的值。

如果B2保证是本月的第一个,则可以省略第一个EOMONTH函数

与SUMPRODUCT解决scheme

我发现在这种情况下使用SUMPRODUCT更简单。

对于没有标题行,你可以简单的使用:

 =SUMPRODUCT((MONTH(Sheet1!D:D)=MONTH(Sheet2!$B$2))*(YEAR(Sheet1!D:D)=YEAR(Sheet2!$B$2))*(Sheet1!E:E="Name"),Sheet1!O:O) 

只需用您想要的"Name"replace"Name"

如果您有一个标题行(或者如果该列包含任何不是有效date的值),则需要使用SUMPRODUCT的数组公式:

 =SUMPRODUCT((IF(ISERROR(MONTH(Sheet1!D:D)),Sheet1!D:D,MONTH(Sheet1!D:D))=MONTH(Sheet2!$B$2))*(IF(ISERROR(YEAR(Sheet1!D:D)),Sheet1!D:D,YEAR(Sheet1!D:D))=YEAR(Sheet2!$B$2))*(Sheet1!E:E="Name"),Sheet1!O:O) 

(使用ctrl + shft + enter数组公式enter