首页 文章

带有日期和名称标准的SUMIFS ...仅限月份和年份

提问于
浏览
5

我正在尝试获取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是存储名称的位置
"Name"是我想要总和选择的名称标准

任何见解都将非常感谢!

2 回答

  • 0

    如果您为日期创建开始日期和结束日期,则 can 使用 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 保证是本月的第一个,您可以省略第一个 EOMONTH 函数

  • 4

    Solution with SUMPRODUCT

    我发现在这样的情况下使用 SUMPRODUCT 更简单 .

    对于没有 Headers 行,您可以简单地使用:

    =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" 替换为您想要的 .

    如果您有一个 Headers 行(或者如果该列包含任何不是有效日期的值),您需要在 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 输入数组公式)

相关问题