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

如何修改XLOOKUP函数实现灵活列匹配与多结果返回?

Excel公式修改方案:动态列匹配+返回所有重复结果

针对你的两个问题,给出以下公式修改方案:

核心修改思路

  • 动态切换列:用MATCH+INDEX组合,根据H2的表头文本定位目标列,替代固定的F列引用
  • 返回所有重复结果:用FILTER筛选全部匹配项,配合INDEX+COUNTIF按顺序提取每个重复值对应的结果(或用TEXTJOIN合并同值的所有结果)

公式实现(下拉式,适配I5:I8逐个单元格)

在I5单元格输入以下公式,然后下拉填充至I8:

=IFERROR(INDEX(FILTER($A:$A,INDEX($A:$Z,0,MATCH($H$2,$1:$1,0))=H5),COUNTIF($H$5:H5,H5)),"")

公式拆解

  • INDEX($A:$Z,0,MATCH($H$2,$1:$1,0)):通过H2的表头文本,匹配第1行的表头,返回对应整列的所有数据,实现列的动态切换
  • FILTER($A:$A, [动态列]=H5):筛选出A列中,对应动态列值等于当前H单元格值的所有结果
  • COUNTIF($H$5:H5,H5):统计当前行及上方H列中,当前值出现的次数,用于提取第n个匹配结果(比如H5:H6都是150时,分别取第1、第2个匹配项)
  • IFERROR(..., ""):无匹配结果时显示空值,避免#N/A报错

可选:Excel 365溢出式公式(自动填充I5:I8)

如果使用Excel 365支持动态数组,可在I5输入以下公式,自动溢出填充所有结果(同值的所有匹配项用逗号分隔):

=BYROW(H5:H8,LAMBDA(x, TEXTJOIN(", ", TRUE, FILTER($A:$A,INDEX($A:$Z,0,MATCH($H$2,$1:$1,0))=x))))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:39:55