如何修改SUMIFS公式实现C/D双列匹配指定值求和?
解决方案
因为SUMIFS的条件逻辑是同时满足所有指定条件(逻辑“与”),无法直接在单个条件中实现“或”判断,所以需要改用支持数组运算的函数来实现需求。以下是两种可行的公式方案:
方案1:使用SUMPRODUCT函数(推荐,无需数组回车)
=SUMPRODUCT( 'AT&TT'!$F:$F, --((('AT&TT'!$C:$C=AT!$C$3)+('AT&TT'!$D:$D=AT!$C$3))>0), --('AT&TT'!$E:$E=AT!$E$3), --('AT&TT'!$H:$H=AT!G2) )
- 逻辑说明:
('AT&TT'!$C:$C=AT!$C$3)+('AT&TT'!$D:$D=AT!$C$3):C列匹配或D列匹配时,结果为1或2(逻辑值转数值后相加),>0确保只要有一列匹配就返回TRUE--用于将逻辑值TRUE/FALSE转换为1/0,方便SUMPRODUCT进行乘法运算- 最终通过相乘所有条件的结果,筛选出同时满足「C/D列匹配指定值」、「E列匹配AT!$E$3」、「H列匹配AT!G2」的行,对F列求和
方案2:使用SUM+IF数组公式(旧版Excel需按Ctrl+Shift+Enter结束)
=SUM( IF((('AT&TT'!$C:$C=AT!$C$3)+('AT&TT'!$D:$D=AT!$C$3))>0, IF('AT&TT'!$E:$E=AT!$E$3, IF('AT&TT'!$H:$H=AT!G2, 'AT&TT'!$F:$F ) ) ) )
- 逻辑说明:通过嵌套IF逐层判断条件,先筛选出C/D列匹配指定值的行,再依次匹配E列和H列的条件,最后对符合所有条件的F列值求和
补充说明
你之前尝试用VLOOKUP作为SUMIFS条件无法成功,是因为SUMIFS的条件参数需要的是区域匹配逻辑,而VLOOKUP返回的是单个值或错误值,无法生成对应每行的判断结果,因此不适用这种多条件的或场景。
内容的提问来源于stack exchange,提问作者Senior Section Engineer Planni
相关产品推荐
相关产品推荐

