Google表格 - 查询包含数组

时间:2017-01-09 13:40:19

标签: google-sheets google-sheets-query

我有一个带有名称列的范围。

我还有一份选定的名单。

我想运行一个查询,只有当它的名字在这个列表中时才会从这个范围中选择数据:

Select C Where A "is in the selected array of names"

这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

假设名称数组为D2:D10;那么你可以使用查询字符串

"select C where A = '" & join("' or A = '", D2:D10) & "'"

这会创建一个长查询字符串A =' name'或者A ='另一个名字' ...

如果名称范围是可变的(例如,您希望D2:D中列出所有名称),请将D2:D10替换为filter(D2:D, len(D2:D))

答案 1 :(得分:2)

QUERY doesn't have a concept of in

如果您在A栏中列出了名单,请说

  A  B  C
1 1     A
2 2     B
3 3     C

你要在D1中找到名字的名字:D2

  D
1 A
2 C

您可以构建一个正则表达式以匹配您想要在E1中找到的名称

=QUERY(C1:C3, "SELECT A WHERE A MATCHES '(" & JOIN("|", D1:D2) & ")'")

返回

  E
1 A
2 C

答案 2 :(得分:0)

如果要在查询中提供名称列表,而不是其他范围,可以使用匹配项

完全匹配:

=QUERY(A1:C3; "SELECT C WHERE A matches 'name1|name2|name3' ")

匹配名称的一部分:

=QUERY(A1:C3; "SELECT C WHERE A matches '.*name1.*|.*name2.*' ")