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

求可处理重复输入及顺序的Google Sheets堆叠查询结果公式

Google Sheets 按输入顺序堆叠查询结果的公式解决方案

问题分析

你之前使用的公式:

=FLATTEN(ARRAYFORMULA(QUERY(A3:B10, "select B where A = '" & TEXTJOIN("' or A = '", TRUE, D3:D) & "'", 0)))

存在两个核心问题:

  • 无法保留输入范围的顺序:QUERY返回的结果是按照原数据(A3:B10)中匹配项的顺序排列,而非输入范围(D3:D)的顺序
  • 无法处理重复输入:即使D列有重复的查询值,QUERY只会返回一次对应的B值,不会重复输出

解决方案公式

使用MAP函数逐个遍历输入值,结合QUERY和FLATTEN实现需求:

=FLATTEN(MAP(D3:D, LAMBDA(x, QUERY(A3:B10, "select B where A = '"&x&"'", 0))))

公式逻辑说明

  • MAP(D3:D, LAMBDA(x, ...)):逐个遍历D3:D中的每个输入值x
  • 对每个x执行QUERY(A3:B10, "select B where A = '"&x&"'", 0):单独查询A列等于当前输入值x的所有B列数据
  • FLATTEN:将每个QUERY返回的结果(可能是多行)按输入顺序堆叠成单一列

这样既会严格遵循输入范围的上下顺序,也会对重复的输入值重复输出对应的查询结果,完全匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:42:34