如何在满足日期日数与关键词两个条件时对列值求和?
多条件求和解决方案:日期日数≤指定值且文本含关键词
你的公式问题分析
- SUMPRODUCT公式错误:
B1:B3="=*e*"是在判断单元格内容是否等于字符串=*e*,而非检测是否包含"e"。通配符匹配不能直接用等于号,需要用文本查找函数实现包含判断。 - IF公式逻辑问题:IF返回的是数组,但SUMIF会对整个B列区域求和,没有关联日期条件,无法实现双条件筛选后的求和。
正确实现方式
方式1:SUMPRODUCT(兼容多数Excel版本)
直接修正SUMPRODUCT的条件判断逻辑即可:
=SUMPRODUCT((C1:C3)*(DAY(A1:A3)<=2)*(ISNUMBER(SEARCH("e", B1:B3))))
DAY(A1:A3)<=2:提取日期的日部分,判断是否≤指定数值ISNUMBER(SEARCH("e", B1:B3)):用SEARCH查找"e",找到返回位置(数字),ISNUMBER将其转为布尔值(包含则为1,不包含为0)- 三个条件数组相乘后,SUMPRODUCT会对符合双条件的C列数值求和
方式2:数组公式(Excel通用)
输入以下公式后按Ctrl+Shift+Enter完成输入:
=SUM(IF((DAY(A1:A3)<=2)*(ISNUMBER(SEARCH("e", B1:B3))), C1:C3))
该公式会先筛选出同时满足两个条件的行,再对对应的C列数值求和。
方式3:SUMIFS(Excel 2007及以上推荐)
利用SUMIFS的多条件特性,写法更直观:
=SUMIFS(C1:C3, A1:A3, "<="&DATE(YEAR(A1), MONTH(A1), 2), B1:B3, "*e*")
注:这里的DATE(YEAR(A1), MONTH(A1), 2)是构造当月2号的日期,确保日数≤2的日期都被匹配;*e*是通配符写法,匹配包含"e"的文本。
以上三种公式都能得到你预期的结果2。
内容的提问来源于stack exchange,提问作者Juan Zepeda
相关产品推荐
相关产品推荐

