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

如何修改Excel公式提取同一Invoice ID下的所有产品信息?

提取同一Invoice ID下所有产品的解决方案

我来帮你搞定这个批量提取产品的需求,根据你的Excel版本,有两种实用方法:

方法1:用FILTER函数(推荐Excel 365/2021及以上版本)

如果你用的是支持动态数组的Excel版本,直接用FILTER函数就能一步到位,它会自动把所有匹配的产品ID填充到下方行里,不用手动下拉。

在Invoice表你要放第一个产品ID的单元格(比如假设是A15)输入公式:

=FILTER(Orders!E:E, Orders!A:A=Invoice!$I$10)
  • 原理:FILTER会遍历Orders表的A列,找出所有和Invoice表I10单元格相同的Invoice ID,然后提取对应行的E列(产品ID),结果会自动向下溢出显示所有匹配项。

方法2:用INDEX+SMALL数组公式(兼容老版本Excel)

如果你的Excel不支持动态数组(比如Excel 2019及更早版本),可以用数组公式来实现:

在Invoice表的目标单元格输入公式,然后按Ctrl+Shift+Enter组合键(不是单独回车)完成数组公式输入,之后下拉填充到足够多的行,直到出现空值:

=IFERROR(INDEX(Orders!E:E, SMALL(IF(Orders!A:A=Invoice!$I$10, ROW(Orders!A:A)), ROW(A1))), "")
  • 原理拆解:
    1. IF(Orders!A:A=Invoice!$I$10, ROW(Orders!A:A)):找出所有Invoice ID匹配的行号,不匹配的返回FALSE
    2. SMALL(..., ROW(A1)):按顺序取出第1、2、3...个匹配的行号(下拉时ROW(A1)会变成ROW(A2)、ROW(A3),依次取后续行号)
    3. INDEX(Orders!E:E, ...):根据行号提取对应产品ID
    4. IFERROR(..., ""):当没有更多匹配项时,显示空值,避免出现#NUM!错误

注意事项

  • 确保Orders表A列的Invoice ID和Invoice表I10的单元格格式完全一致(比如都是文本或都是数字),否则会出现匹配不到的情况
  • 用动态数组公式时,不要手动下拉填充,Excel会自动溢出结果,强行下拉会覆盖自动生成的内容
  • 老版本的数组公式必须按Ctrl+Shift+Enter输入,单独回车公式不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:41:08