Google工作表QUERY中的IF语句

时间:2016-02-02 10:32:05

标签: google-sheets

我正在制作Google表格,其中包含来自Google Analytics的价值,并允许用户进入,从下拉列表中选择各种目标网页,以及流量来源,并查看与该来源/目标网页相关的各种统计信息。

所有工作除了我想要一个' all'选择来源下拉列表。

我用来生成结果的公式的简化版本是:

=IFERROR(QUERY('Sheet1'!$A$16:$M$6969,"select sum(E) where (A) contains '" & $B$4 & "' AND B = " & MONTH(B$6) & " AND C = " & YEAR(B$6) & " AND D = '" & $B$3 & "' label sum(E) ''",1),0)

A是着陆页代码,即landing-page

BC只是从标题行中获取日期

D是我正在努力解决的问题。目前B3是包含cpcorganicdirectall的下拉列表。如果我选择了除all以外的任何内容,但我需要编写某种条件,因此如果选择了all,则AND D = '" & $B$3 & "'不会被使用。

我似乎无法在QUERY中放入IF语句,因此不确定如何继续!

1 个答案:

答案 0 :(得分:2)

如果您尝试动态生成查询,尤其是在多个过滤条件下,通常可以更轻松地将过滤条件替换为1=1
这消除了跟踪ANDOR子句的可能问题。

=IFERROR(QUERY('Sheet1'!$A$16:$M$6969,
               "select sum(E) 
                where (A) contains '" & $B$4 & "' 
                      AND B = " & MONTH(B$6) & " 
                      AND C = " & YEAR(B$6) & " 
                      AND " & IF($B$3="all", "1=1", "D = '" & $B$3 &"'")& "      
                label sum(E) ''",1),0)