首先,我将解释我想要实现的目标
我有一个包含多个列和行的列表,例如
| a | b | c
-----------------
1 | f1 | 4 | f
2 | f2 | 9 | k
3 | f3 | 1 | x
在列表外的另一列中,我想写一个可变大小的列表,其中包含列' a'的值。
此列表适用于这样的查询(假设我在列中编写变量列表' d')
=QUERY(A2:D3,"SELECT a, b, c WHERE A IN D")
我认为问题是我无法使用sql
中的IN运算符有没有办法实现这个目标?最重要的部分是我想手动编写一个可变大小的列表来查询?
答案 0 :(得分:1)
这个公式,在单元格E1中:
=FILTER(A:C,REGEXMATCH(A:A,JOIN("|",FILTER(D:D,D:D<>""))))
FILTER
公式可以将任何数组作为条件参数。当|
中的任何文字与true
中的文字匹配时,REGEXMATCH
+ JOIN
与管道D
将匹配A
。
此公式有一个更好的理由,您可以将其用作进一步查询的来源,例如:=query(my_formula, "select Col1, Col3 where Col2 > 0")