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

Excel跨工作表多值匹配:如何横向返回对应列的所有匹配数据?

多匹配项横向提取解决方案

一、Excel 365/2021 动态数组解法

直接用FILTER结合TRANSPOSE即可一步实现,假设目标数据在Sheet2,匹配列为A列(可根据实际调整),要提取的是H列数据:

=TRANSPOSE(FILTER(Sheet2!H:H, (Sheet2!A:A=C2)+(Sheet2!A:A=C3), ""))
  • (Sheet2!A:A=C2)+(Sheet2!A:A=C3):用逻辑或筛选出A列等于C2或C3的行
  • FILTER提取对应H列的所有匹配值
  • TRANSPOSE将纵向结果转为横向输出

如果需要去除重复值,可嵌套UNIQUE:

=TRANSPOSE(UNIQUE(FILTER(Sheet2!H:H, (Sheet2!A:A=C2)+(Sheet2!A:A=C3), "")))

二、旧版Excel(无动态数组)解法

使用INDEX+SMALL+IF数组公式,输入后需按Ctrl+Shift+Enter确认(不要直接回车)。假设从当前单元格D2开始横向输出:

=IFERROR(INDEX(Sheet2!H:H, SMALL(IF((Sheet2!A:A=C2)+(Sheet2!A:A=C3), ROW(Sheet2!A:A)), COLUMN(A1))), "")

输入完成后向右拖动填充柄,直到出现空值即可。

  • IF((Sheet2!A:A=C2)+(Sheet2!A:A=C3), ROW(Sheet2!A:A)):生成所有匹配行的行号数组
  • SMALL(..., COLUMN(A1)):横向拖动时,COLUMN(A1)会依次变为COLUMN(B1)、COLUMN(C1),对应提取第1、2、3...个匹配项的行号
  • INDEX根据行号提取H列对应值
  • IFERROR处理匹配项耗尽后的错误,返回空值

注意事项

  • 替换公式中的Sheet2!A:A为你实际的匹配列(比如B列就改成Sheet2!B:B)
  • 数据量大时,建议用具体单元格范围代替整列(如Sheet2!A2:A1000),提升计算效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:47:07