我正在尝试获取SUMIFS公式来检查日期列,并仅对与标准日期的匹配年份和月份相对应的值求和。我还希望此SUMIFS包含名称标准以及日期。即。
单元格A1:=SUMIFS('Sheet1'!O:O, 'Sheet1'!D:D, 'Sheet2'!DATE(B2), 'Sheet1'!E:E, "Name")
sheet1列O是存储和值的地方
sheet1列D是存储日期值的地方
sheet2单元格B2是存储日期比较标准的地方
sheet1列E是存储名称的位置
“名称”是我想要进行总和选择的名称标准
非常感谢任何见解!
答案 0 :(得分:4)
如果您为日期创建开始日期和结束日期, 可以1>},即使用此版本
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
根据您的其他条件对正确值求和。
如果保证SUMIFS
是本月的第一天,您可以省略第一个B2
功能
答案 1 :(得分:0)
SUMPRODUCT解决方案
我觉得在这种情况下使用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"
替换为您想要的内容。
如果您有标题行(或者列中包含任何非有效日期的值),则需要在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