SUMIFS函数报错‘数组参数大小不一致’的解决咨询
解决SUMIFS的“Array arguments to SUMIFS are of different size”错误
错误原因
你当前的公式问题出在SUMIFS不支持将数组运算结果作为条件区域:YEAR(Transactions!$F5:$F500)会返回一个数值数组,但SUMIFS要求每个条件参数必须是单元格区域引用,而非数组。即便你把范围改成固定的$I5:$I500,这个逻辑冲突依然存在,导致尺寸不匹配报错。
解决方案
方案1:用日期区间替代YEAR函数(推荐,符合SUMIFS原生语法)
把年份匹配条件转换成日期范围判断,让条件区域保持单元格引用:
=SUMIFS(Transactions!$G5:$G500,Transactions!$I5:$I500,E46,Transactions!$F5:$F500,">="&DATE(G44,1,1),Transactions!$F5:$F500,"<="&DATE(G44,12,31))
原理:用DATE(G44,1,1)生成目标年份的1月1日,DATE(G44,12,31)生成目标年份的12月31日,通过判断F列日期是否在这个区间内,实现年份匹配。
方案2:改用SUMPRODUCT函数(支持数组运算)
SUMPRODUCT可以直接处理数组逻辑判断,适配你原本的思路:
=SUMPRODUCT((Transactions!$I5:$I500=E46)*(YEAR(Transactions!$F5:$F500)=G44)*Transactions!$G5:$G500)
原理:每个括号内的判断返回TRUE/FALSE(对应1/0),相乘后只有同时满足两个条件的行才会保留G列的金额,最后求和。G列的空白单元格会被当作0,不影响结果。
内容的提问来源于stack exchange,提问作者Peter C
相关产品推荐
相关产品推荐

