表格中多条件SUMIFS函数失效问题求助
解决Excel SUMIFS数组条件导致的SPILL错误
问题原因
当你在SUMIFS中使用数组(如{"Quote","RFP",...})作为[Proposal Type]的筛选条件时,函数会返回一个与数组元素数量对应的结果数组,但单个单元格无法容纳数组输出,因此触发SPILL错误。而单个条件的修订公式能正常运行,是因为它仅返回单个求和结果。
解决方案
方法1:用SUM包裹SUMIFS
在原SUMIFS外层添加SUM函数,将数组返回的多个分项求和结果汇总为单个数值,避免溢出。
- 修改后的报价公式:
=SWITCH([@YTD],CurrentFY,(SWITCH(COUNTIFS($AG$2:$AG2,[@[Client Name]],$AJ$2:$AJ2,CurrentFY),1,SUM(SUMIFS([Amount (converted).amount],[Client Name],[@[Client Name]],[YTD],CurrentFY,[Proposal Type],{"Quote","RFP","RFQ","Ballpark","Proposal","Options","Price per Sample"})),0)),0)
- 修改后的返工公式:
=SWITCH([@YTD],CurrentFY,(SWITCH(COUNTIFS($AG$2:$AG2,[@[Client Name]],$AJ$2:$AJ2,CurrentFY),1,SUM(SUMIFS([Amount (converted).amount],[Client Name],[@[Client Name]],[YTD],CurrentFY,[Proposal Type],{"Quote Re-Work","Amendment Re-Work"})),0)),0)
方法2:改用SUMPRODUCT
SUMPRODUCT通过逻辑判断的乘积筛选符合条件的金额并求和,直接返回单个数值,不会产生溢出问题。
- 报价公式的SUMPRODUCT写法:
=SWITCH([@YTD],CurrentFY,(SWITCH(COUNTIFS($AG$2:$AG2,[@[Client Name]],$AJ$2:$AJ2,CurrentFY),1,SUMPRODUCT([Amount (converted).amount]*([Client Name]=[@[Client Name]])*([YTD]=CurrentFY)*ISNUMBER(MATCH([Proposal Type],{"Quote","RFP","RFQ","Ballpark","Proposal","Options","Price per Sample"},0))),0)),0)
- 返工公式的SUMPRODUCT写法:
=SWITCH([@YTD],CurrentFY,(SWITCH(COUNTIFS($AG$2:$AG2,[@[Client Name]],$AJ$2:$AJ2,CurrentFY),1,SUMPRODUCT([Amount (converted).amount]*([Client Name]=[@[Client Name]])*([YTD]=CurrentFY)*ISNUMBER(MATCH([Proposal Type],{"Quote Re-Work","Amendment Re-Work"},0))),0)),0)
内容的提问来源于stack exchange,提问作者Shea Murphy
相关产品推荐
相关产品推荐

