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

Excel中如何用VLOOKUP获取匹配发票号的首个非空金额?

解决重复发票号匹配唯一非空金额的问题

针对你遇到的重复发票号对应唯一非空金额的匹配问题,以下几种方法可直接绕过空值返回目标金额:

方法1:SUMIF函数(全版本Excel兼容)

利用每个发票号仅对应一个有效金额的特性,SUMIF会自动忽略空值并返回该唯一值。假设原数据工作表名为数据源,发票号列是数据源!A:A,金额列是数据源!B:B,当前工作表中待匹配的发票号在单元格A2,公式如下:

=SUMIF(数据源!$A:$A, A2, 数据源!$B:$B)

方法2:XLOOKUP函数(Excel 365/2021及以上版本)

反向查找法

如果非空金额通常在重复发票号的最后一行,可使用反向查找直接定位:

=XLOOKUP(A2, 数据源!$A:$A, 数据源!$B:$B, "", 0, 2)

最后一个参数2表示从区域末尾向前查找,优先返回最后一个匹配结果(即非空金额行)。

过滤空值法

如果不确定非空金额的位置,用数组条件筛选出匹配且金额非空的行:

=XLOOKUP(TRUE, (数据源!$A:$A=A2)*(数据源!$B:$B<>""), 数据源!$B:$B)

方法3:INDEX+AGGREGATE组合(兼容旧版Excel)

AGGREGATE可忽略错误值,精准定位到匹配且金额非空的行号,再用INDEX提取金额:

=INDEX(数据源!$B:$B, AGGREGATE(15, 6, ROW(数据源!$A:$A)/(数据源!$A:$A=A2)/(数据源!$B:$B<>""), 1))
  • AGGREGATE(15,6,...):15对应SMALL函数,6表示忽略错误值
  • ROW(...)部分:仅保留发票号匹配且金额非空的行号,取最小(第一个)行号对应的金额

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 23:39:08