如何在Excel SUMIFS函数的条件区间内使用MONTH函数?
解决方案
方法1:使用SUMPRODUCT替代SUMIFS(兼容所有Excel版本)
直接在公式中对日期列提取月份作为条件,无需辅助列:
英文公式:
=SUMPRODUCT($G$2:$G$50, --($F$2:$F$50=$A2), --(MONTH($H$2:$H$50)=MONTH(DATEVALUE(B$1&"1"))))
意大利语对应公式:
=PRODOTTO.SOMMA($G$2:$G$50; --($F$2:$F$50=$A2); --(MESE($H$2:$H$50)=MESE(DATA.VALORE(B$1&"1"))))
原理:
--($F$2:$F$50=$A2)将费用类别匹配的逻辑值转为1/0--(MONTH($H$2:$H$50)=MONTH(...))将日期月份匹配的逻辑值转为1/0- SUMPRODUCT会将三个数组(金额、类别匹配、月份匹配)对应元素相乘后求和,实现多条件筛选求和
方法2:使用SUM+FILTER(仅Excel 365/2021及以上版本)
逻辑更直观,先筛选符合条件的金额再求和:
英文公式:
=SUM(FILTER($G$2:$G$50, ($F$2:$F$50=$A2)*(MONTH($H$2:$H$50)=MONTH(DATEVALUE(B$1&"1"))), 0))
意大利语对应公式:
=SOMMA(FILTRO($G$2:$G$50; ($F$2:$F$50=$A2)*(MESE($H$2:$H$50)=MESE(DATA.VALORE(B$1&"1"))); 0))
原理:
- FILTER函数根据「费用类别匹配」和「月份匹配」的双重条件筛选出目标金额
- SUM对筛选结果求和,第三个参数
0表示无匹配时返回0
为什么你的MAP方法失效?
SUMIFS的条件区域参数要求必须是单元格引用区域,而MAP函数返回的是动态数组(不是单元格引用),因此SUMIFS无法识别这个动态生成的条件区域,导致公式无法正常运行。
内容的提问来源于stack exchange,提问作者Kronos24
相关产品推荐
相关产品推荐

