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

求助:基于两列数据跨Sheet横向查找多对应关联值

Excel一对多横向匹配实现方案

针对Sheet1中列2对应列1多个关联值,Sheet2需为列2取值横向匹配列1值的需求,分两种场景给出解决方法:

一、Excel 365/2021及以上版本(支持动态数组)

在Sheet2的B2单元格输入以下公式,公式会自动横向溢出所有匹配值,无需手动右拉/下拉:

=TRANSPOSE(FILTER(Sheet1!$A:$A,Sheet1!$B:$B=$A2,""))
  • 说明:
    • FILTER(Sheet1!$A:$A,Sheet1!$B:$B=$A2,""):筛选Sheet1中列2等于Sheet2当前行A列值的所有列1数据,无匹配时返回空
    • TRANSPOSE:将筛选得到的纵向结果转为横向输出

二、旧版Excel(无动态数组支持)

在Sheet2的B2单元格输入以下数组公式,按Ctrl+Shift+Enter确认输入,然后向右、向下填充公式:

=IFERROR(INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$B:$B=$A2,ROW(Sheet1!$A:$A)),COLUMN(A:A))),"")
  • 说明:
    • IF(Sheet1!$B:$B=$A2,ROW(Sheet1!$A:$A)):获取Sheet1中列2等于目标值的所有行号
    • SMALL(...,COLUMN(A:A)):按顺序提取第N个匹配行号(向右填充时COLUMN(A:A)自动变为COLUMN(B:B),即取第2个、第3个...匹配值)
    • INDEX:根据行号提取Sheet1列1的对应值
    • IFERROR:处理无匹配值的情况,返回空白

优化建议

  • 避免整列引用(如$A:$A),改为实际数据范围(如$A$2:$A$1000),提升公式运行效率
  • 若需将匹配值合并为单个单元格(用分隔符分隔),可使用TEXTJOIN函数:
    =TEXTJOIN(", ",TRUE,FILTER(Sheet1!$A:$A,Sheet1!$B:$B=$A2,""))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:55:00