Google 个工作表中 QUERY 内的 IF 语句

IF statement inside QUERY in Google Sheets

我有一个 google sheet,其中列出了几个项目。 使用 QUERY 函数,我将信息检索到另一个 sheet 以用于报告目的。

我使用的公式是: =QUERY($A$2:$D$8,"IF(OR($C2=1,$C2=2,$C2=3), Select A, B, D, Select A, B, C)",0)

我正在努力做的是在 QUERY 函数中放置一个 IF 语句。

如果状态 (Col2) 值为“1”、“2”或“3”,我想获取日期 2 (Col4) 的值。否则,如果状态 (Col2) 值为“4”、“5”或“6”,我希望查询 return 日期 1 (Col3)

如有任何帮助,我们将不胜感激。 谢谢!

公式是这样的:

=ArrayFormula(query({A2:B8,if(B2:B8<=3,D2:D8,C2:C8)},"select *"))

但查询实际上没有执行任何操作。

所以你可以使用:

=ArrayFormula({A2:B8,if(B2:B8<=3,D2:D8,C2:C8)})

因此可以将 IF 语句包含到查询中。要记住的主要事情是查询是文本,所以你必须结束包含你的引用的引用,然后重新启动引用。这就像通过公式造句一样。例如,您可以为次要条件添加以下文本:

"&if(T3="",""," and H = '"&T3&"'")&"

我希望能够有条件地缩小结果范围。因此,如果我在 T3 中有一个值,那么列 H 的条件将添加到我的查询中。否则,它被排除在外。

以防我搞砸了或没有理解,这是我的实际完整公式。我还使用驻留在 Q3、R3 和 S3 中的过滤器进行查询。

=query(Transactions!B1:H, "select B,C,D,E,F,G where B > date '"&TEXT(DATEVALUE(Q3),"yyyy-mm-dd")&"' and B <= date '"&TEXT(DATEVALUE(R3),"yyyy-mm-dd")&"' and D = '"&S3&"'"&if(T3="",""," and H = '"&T3&"'")&" order by B desc limit 50",1)