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

Google Sheets多列数组匹配指定值,返回对应行指定列数据

Google Sheets 多列匹配返回对应行数据的解决方案

核心公式(推荐)

在A1单元格输入以下公式即可实现需求:

=FILTER(B2:B248, BYROW(G2:I248, LAMBDA(row, COUNTIF(row, J1)>0)))

公式原理

  • BYROW(G2:I248, LAMBDA(row, COUNTIF(row, J1)>0)):逐行检查G2到I248的每一行,统计当前行中等于J1内容的单元格数量。只要数量大于0,就返回TRUE(表示该行符合匹配条件),否则返回FALSE。最终生成一个与B2:B248行数一致的布尔判断数组。
  • FILTER(B2:B248, ...):根据上面的布尔数组,筛选出B2:B248中对应行的数据,自动填充到A1及下方单元格,所有匹配结果会依次排列。

替代公式(用MMULT实现)

如果更习惯用矩阵运算,也可以用这个公式:

=FILTER(B2:B248, MMULT(--(G2:I248=J1), SEQUENCE(COLUMNS(G2:I248),1,1,0))>0)
  • --(G2:I248=J1):将G2:I248中与J1匹配的单元格转为1,不匹配的转为0,生成一个二维数值数组。
  • MMULT(..., SEQUENCE(...)):通过矩阵乘法,计算每行的数值总和。只要总和大于0,说明该行存在匹配内容。

为什么之前的方法没生效?

  • VLOOKUP:只能在指定区域的首列查找匹配值,无法同时检查多列,所以不符合你的需求。
  • 普通FILTER:如果直接写FILTER(B2:B248, G2:I248=J1),会返回二维的条件数组,而FILTER需要一维的行判断条件,因此无法正确筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:52:34