我有一个Google工作表,其中列出了几个项目。 使用QUERY函数,我可以将信息检索到另一张表中以进行报告。
我使用的公式是: = QUERY($ A $ 2:$ D $ 8,“ IF(OR($ C2 = 1,$ C2 = 2,$ C2 = 3),Select A,B,D,Select A,B,C)”,0)
我正在努力做的是将IF语句放在QUERY函数中。
如果状态(Col2)值为“ 1”,“ 2”或“ 3”,我想获取日期2(Col4)值。否则,如果状态(Col2)值为“ 4”,“ 5”或“ 6”,我希望查询返回日期1(Col3)
任何帮助将不胜感激。 谢谢!
答案 0 :(得分:2)
公式如下:
=ArrayFormula(query({A2:B8,if(B2:B8<=3,D2:D8,C2:C8)},"select *"))
但是查询实际上没有做任何事情。
因此您可以使用:
=ArrayFormula({A2:B8,if(B2:B8<=3,D2:D8,C2:C8)})
答案 1 :(得分:0)
因此可以在查询中包含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)