【问题标题】:Google Sheet Filter formula based on range of cells基于单元格范围的谷歌表格过滤器公式
【发布时间】:2021-07-26 16:22:10
【问题描述】:

我有一些数据 基本上是一个项目列表 和另一个包含订单列表的工作表 (有些项目可以出现在多个订单中,这就是为什么我不能为此使用 vlookup)

我的问题是我想获取动态列表中所有项目的所有订单 ID(在我的示例中只有 3 个项目,但可以增长。

我正在尝试使用过滤器公式,并且到目前为止:

=filter('Orders'!AC1:AD,'Orders'!K:K=A4)

在检索单元格 A4 中项目编号的所有订单 ID 时效果很好。

但我想要 A 列中所有商品的订单 ID。

我试过了

=filter('Orders'!AC1:AD,'Orders'!K:K=A2:A)

但这不起作用。我猜我可能需要做一些数组公式。

但我想不通。

【问题讨论】:

  • 请您分享一个示例表,显示您的源数据以及您需要的结果类型?
  • docs.google.com/spreadsheets/d/… 这是一个样本表,Summary 中的橙色突出显示是我已经能够做到的(使用单个项目#)绿色突出显示是我想要发生的事情(列出所有订单号)红色突出显示,是我尝试过但不起作用

标签: google-sheets google-sheets-formula


【解决方案1】:

你可以使用QUERY函数

这是一种类似于 SQL 的语法来操作您的数据。

=query({Orders!$A:$B},"select Col2 where Col1 matches '"&textjoin("|",true,unique(Summary!$A4:$A))&"' ",1)

或者如果您需要对结果进行排序,则可以这样做:

=query({Orders!$A:$B},"select Col2 where Col1 matches '"&textjoin("|",true,unique(Summary!$A4:$A))&"' order by Col2 ",1)

第一个参数是您要查询的范围。在这种情况下,使用 array notation {Orders!$A:$B} 插入。

下一个参数是一个字符串,表示类似 SQL 的语句,在这种情况下表示“当第 1 列与项目 A 或项目 C 或项目 D 匹配时选择第 2 列”。

“项目 A 或项目 C 或项目 D”部分由另一个公式 TEXTJOIN 构成。只需抓住要加入的范围,并将分隔符设置为 OR 运算符,即|

【讨论】:

  • 谢谢!那工作得很好。感谢您为我解释每个部分
  • 谢谢,是iansedano 为我的公式添加了解释。
猜你喜欢
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多