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

求助:修改IFERROR(VLOOKUP)公式实现匹配行数据求和

解决多匹配行的求和需求

嘿,这个问题太常见啦——VLOOKUP天生就只会返回第一个匹配到的结果,要对所有符合条件的行对应列数据求和,咱们换用专门的条件求和函数就行,给你几个实用的方案:

方案1:用SUMIFS(适配所有Excel版本)

这是最直观的条件求和函数,专门用来处理多条件(这里咱们只需要一个匹配条件)的求和场景。

假设你的Names表中:

  • A列是用来匹配的名称列(对应你要找的H4的值,比如"mac")
  • 19:00对应的数据在Q列,20:00对应的数据在R列

那求19:00的总和公式就是:

=SUMIFS(Names!Q:Q, Names!A:A, H4)

求20:00的总和公式则是:

=SUMIFS(Names!R:R, Names!A:A, H4)

如果没有匹配到任何数据,公式会自动返回0,要是想改成返回"N/A",可以套个IFERROR:

=IFERROR(SUMIFS(Names!Q:Q, Names!A:A, H4), "N/A")

方案2:用SUMPRODUCT(兼容旧版Excel,更灵活)

如果你的Excel版本比较旧,或者需要更灵活的条件组合,SUMPRODUCT是个不错的选择。它的原理是先通过条件判断生成布尔数组,再和数值数组相乘后求和。

比如要对第16列(P列,因为A是第1列)匹配H4的行求和:

=SUMPRODUCT((Names!A:A=H4)*Names!P:P)

同样,套IFERROR可以处理无匹配的情况:

=IFERROR(SUMPRODUCT((Names!A:A=H4)*Names!P:P), "N/A")

方案3:用FILTER+SUM(Excel 365/2021专属,更简洁)

如果你用的是Excel 365或2021版本,动态数组公式能让操作更简洁。先用FILTER筛选出所有匹配H4的行的目标列数据,再直接求和:

=SUM(FILTER(Names!P:P, Names!A:A=H4, 0))

这里第三个参数0是无匹配时的返回值,你也可以改成"N/A":

=IFERROR(SUM(FILTER(Names!P:P, Names!A:A=H4)), "N/A")

根据你的例子,只要把公式里的目标列(比如Q、R、P)换成19:00和20:00对应的列,就能得到你想要的19:00=31、20:00=38的结果啦!

内容的提问来源于stack exchange,提问作者T.Warren

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:29:30