Google Sheets中IFS函数范围大小不匹配问题求助
问题解决:Google Sheets IFS函数范围尺寸不匹配错误
错误原因
你遇到的「IFS has mismatched range sizes」错误,核心原因是IFS函数要求所有条件对应的返回值范围尺寸完全一致。当前公式中,当Summary!L2不匹配指定月份时,会默认返回1行1列的空白值;而匹配到月份时,返回的是QUERY查询出的5列数据,两者尺寸不兼容,触发错误。
最优解决方案:用动态QUERY替代IFS
不用逐个写月份条件,直接把月份名称转换成数字,整合到QUERY语句中,适配所有月份:
=QUERY(Data!A2:E, "where month(A)+1="&MONTH(DATEVALUE(Summary!L2&" 1"))&" and E = 'Expense'")
公式说明
DATEVALUE(Summary!L2&" 1"):将Summary!L2中的月份名称(如"October")转换成对应日期(年份不影响月份提取)MONTH(...):提取该日期的月份数字(如10)- 拼接后的
QUERY会自动匹配对应月份的所有支出数据,返回结果始终是5列范围,不会出现尺寸不匹配问题
优化:无数据时返回空白
如果希望没有匹配数据时显示空白而非#N/A,可以套一层IFERROR:
=IFERROR(QUERY(Data!A2:E, "where month(A)+1="&MONTH(DATEVALUE(Summary!L2&" 1"))&" and E = 'Expense'"), "")
(不推荐)坚持用IFS的修正方法
如果一定要保留IFS结构,需要让每个条件的返回值都是5列范围,包括默认情况返回5列空白:
=IFS( Summary!L2="January", QUERY(Data!A2:E, "where month(A)+1=1 and E = 'Expense'"), Summary!L2="February", QUERY(Data!A2:E, "where month(A)+1=2 and E = 'Expense'"), Summary!L2="March", QUERY(Data!A2:E, "where month(A)+1=3 and E = 'Expense'"), Summary!L2="April", QUERY(Data!A2:E, "where month(A)+1=4 and E = 'Expense'"), Summary!L2="May", QUERY(Data!A2:E, "where month(A)+1=5 and E = 'Expense'"), Summary!L2="June", QUERY(Data!A2:E, "where month(A)+1=6 and E = 'Expense'"), Summary!L2="July", QUERY(Data!A2:E, "where month(A)+1=7 and E = 'Expense'"), Summary!L2="August", QUERY(Data!A2:E, "where month(A)+1=8 and E = 'Expense'"), Summary!L2="September", QUERY(Data!A2:E, "where month(A)+1=9 and E = 'Expense'"), Summary!L2="October", QUERY(Data!A2:E, "where month(A)+1=10 and E = 'Expense'"), Summary!L2="November", QUERY(Data!A2:E, "where month(A)+1=11 and E = 'Expense'"), Summary!L2="December", QUERY(Data!A2:E, "where month(A)+1=12 and E = 'Expense'"), TRUE, ARRAYFORMULA(IF(SEQUENCE(1,5), "")) )
这种方法需要手动写全12个月份的条件,灵活性差,远不如动态QUERY高效。
内容的提问来源于stack exchange,提问作者user3711291
相关产品推荐
相关产品推荐

