Google Sheets中基于D1动态列的FILTER多条件筛选问题求助
Google Sheets 筛选公式修正方案
问题核心原因
你当前的公式存在数据范围错误:A2:A3和B2:D3仅覆盖了前两行数据,漏掉了John所在的第4行,导致筛选结果不完整。
方案1:动态单列筛选(根据D1的值返回对应列结果)
修正范围后,使用原逻辑的公式:
=FILTER(A2:A4, (INDEX(B2:D4, , D1) = "O") + (INDEX(B2:D4, , D1) = "O/I"))
或者更简洁的写法,用MATCH判断值是否在目标列表中:
=FILTER(A2:A4, ISNUMBER(MATCH(INDEX(B2:D4, , D1), {"O", "O/I"}, 0)))
- 当D1=1时,返回
Jane - 当D1=2时,返回
Jack、John - 当D1=3时,返回
Jane、Jack
方案2:生成多列筛选结果(匹配你给出的预期表格)
如果需要同时展示1、2、3列的筛选结果,用BYCOL遍历每一列执行筛选:
=BYCOL(B2:D4, LAMBDA(col, FILTER(A2:A4, ISNUMBER(MATCH(col, {"O", "O/I"}, 0)))))
该公式会自动将各列的筛选结果按列排列,完全符合你给出的预期格式。
内容的提问来源于stack exchange,提问作者chichi
相关产品推荐
相关产品推荐

