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

求Google Sheets公式:B-AZ列任意匹配值时返回A列对应值

Google Sheets 多列匹配返回对应A列值的解决方案

方案1:使用FILTER+BYROW+COUNTIF(推荐,支持新版Sheets)

直接用以下公式即可实现需求:

=FILTER('Inv by shelf'!A2:A, BYROW('Inv by shelf'!B2:AZ, LAMBDA(row, COUNTIF(row, C1) > 0)))

逻辑说明:

  • BYROW('Inv by shelf'!B2:AZ, LAMBDA(row, ...)) 遍历B到AZ列的每一行
  • 对每行用COUNTIF(row, C1) > 0判断是否存在等于C1的值,返回TRUE/FALSE的一维数组
  • FILTER根据这个布尔数组,筛选出A列对应的行

方案2:使用FILTER+MMULT(适配不支持LAMBDA的旧版Sheets)

如果你的Sheets版本不支持LAMBDA函数,可改用:

=FILTER('Inv by shelf'!A2:A, MMULT(--('Inv by shelf'!B2:AZ=C1), SEQUENCE(COLUMNS('Inv by shelf'!B2:AZ),1,1,0))>0)

逻辑说明:

  • --('Inv by shelf'!B2:AZ=C1) 将布尔匹配结果转为1(匹配)或0(不匹配)的二维数组
  • MMULT 计算每行的数值总和,大于0则说明该行存在匹配值
  • 最终通过FILTER筛选出符合条件的A列内容

原公式无效原因说明

  • 第一个QUERY公式:用TEXTJOIN把B到AZ列所有内容合并成单一字符串,实际是判断C1是否等于这个合并字符串,完全偏离了"任意列匹配"的需求
  • 第二个FILTER公式:'Inv by shelf'!B:AZ = C1生成的是二维布尔数组,而FILTER要求条件数组和A列行数一致的一维数组,维度不匹配导致报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:06:26