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

如何在Excel/Google Sheets中用FILTER函数返回指定物料的供货店铺数组?

Google Sheets 物料对应店铺筛选解决方案

问题场景

现有店铺-原材料矩阵(B3:H13区域):

  • B列:物料名称
  • C3:H3:店铺名称(Shop A至Shop E)
  • 单元格内"Yes"表示对应店铺有该物料现货

需求:根据J3单元格指定的物料名称,返回所有持有该物料的店铺名称数组。

错误公式分析

你尝试的公式:

=transpose(FILTER(C3:H3;(C4:H13="Yes")*B4:B13=J3))

问题在于条件逻辑错误:(C4:H13="Yes")*B4:B13 会将B列的文本物料名与布尔值相乘,无法生成正确的匹配条件,导致筛选失败。

正确公式

可以使用以下任一公式解决:

方法1:INDEX+MATCH组合(推荐,非易失函数)

=TRANSPOSE(FILTER(C3:H3, INDEX(C4:H13, MATCH(J3, B4:B13, 0), 0) = "Yes"))

逻辑说明:

  1. MATCH(J3, B4:B13, 0):定位J3物料在B列中的行号
  2. INDEX(C4:H13, 行号, 0):取出该物料对应的整行店铺库存数据
  3. FILTER(C3:H3, ... = "Yes"):筛选出该行中标记为"Yes"的店铺名称
  4. TRANSPOSE:将结果转为横向数组

方法2:布尔条件组合

=TRANSPOSE(FILTER(C3:H3, (B4:B13=J3)*(C4:H13="Yes")))

逻辑说明:

  • (B4:B13=J3):生成布尔数组,标记J3物料所在行
  • (C4:H13="Yes"):生成布尔数组,标记所有有现货的单元格
  • 两者相乘后,仅对应物料行且有现货的位置为TRUE,以此筛选店铺名称

将上述任一公式输入到J5单元格即可得到正确结果。

内容的提问来源于stack exchange,提问作者Amir S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:05:19