我正在制作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
B
和C
只是从标题行中获取日期
D
是我正在努力解决的问题。目前B3
是包含cpc
,organic
,direct
,all
的下拉列表。如果我选择了除all
以外的任何内容,但我需要编写某种条件,因此如果选择了all
,则AND D = '" & $B$3 & "'
不会被使用。
我似乎无法在QUERY中放入IF语句,因此不确定如何继续!
答案 0 :(得分:2)
如果您尝试动态生成查询,尤其是在多个过滤条件下,通常可以更轻松地将过滤条件替换为1=1
。
这消除了跟踪AND
和OR
子句的可能问题。
=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)