You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:35:20