我有一个带有名称列的范围。
我还提供了一个选择的名称列表。
我想运行一个查询,仅当它的名称在此列表中时才会从此范围中选择数据:
Select C Where A "is in the selected array of names"
这样做的正确方法是什么?
我有一个带有名称列的范围。
我还提供了一个选择的名称列表。
我想运行一个查询,仅当它的名称在此列表中时才会从此范围中选择数据:
Select C Where A "is in the selected array of names"
这样做的正确方法是什么?
假设名称数组是 D2:D10;那么你可以使用查询字符串
"select C where A = '" & join("' or A = '", D2:D10) & "'"
这会创建一个长查询字符串 A = 'name' 或 A= 'another name'...
如果名称范围是可变的(例如,您希望在 D2:D 中列出所有名称),请将 D2:D10 替换为filter(D2:D, len(D2:D))
.
QUERY
没有 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
如果您想在查询中提供名称列表而不是另一个范围,您可以使用匹配项
完全符合:
=QUERY(A1:C3; "SELECT C WHERE A matches 'name1|name2|name3' ")
匹配名称的一部分:
=QUERY(A1:C3; "SELECT C WHERE A matches '.*name1.*|.*name2.*' ")