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

如何在Google Sheets中获取多列索引并解决重复列匹配问题?

问题分析

你的公式中MATCH函数默认仅返回第一个匹配到的John列索引,导致只能筛选出该列对应的BMW,无法识别第二个John列中的Nissan。

解决方案

方法1:支持动态数组与LAMBDA函数的Excel版本(如365/2021)

使用BYROW结合OR函数,遍历每一行并检查所有列标题为目标名字的单元格是否存在"x",公式如下:

=IFERROR(FILTER(P4:P7, BYROW(Q4:T7, LAMBDA(row, OR((Q3:T3=L9)*(row="x"))))), "")
公式拆解:
  • Q3:T3=L9:生成布尔数组,标记哪些列的标题等于指定名字(如John)
  • row="x":对当前行,标记哪些单元格为"x"
  • (Q3:T3=L9)*(row="x"):相乘后得到当前行中列标题为目标名字且单元格为x的位置(1表示符合,0表示不符合)
  • OR(...):判断当前行是否存在至少一个符合条件的单元格,返回TRUE/FALSE
  • BYROW(..., LAMBDA(row, ...)):对数据区域的每一行执行上述判断,生成筛选条件数组
  • FILTER(P4:P7, ...):根据条件返回对应的cars列表
  • IFERROR(..., ""):无匹配结果时返回空值

方法2:旧版Excel(不支持LAMBDA)

使用数组公式(输入时按Ctrl+Shift+Enter确认),下拉公式直到出现空值即可获取所有匹配项:

=IFERROR(INDEX(P4:P7, SMALL(IF((Q3:T3=L9)*(Q4:T7="x"), ROW(Q4:T7)-ROW(Q4)+1), ROWS($A$1:A1))), "")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:53:08