我正在尝试找到正确的Google查询语法,以便为源数据中存在的每个行元素显示一个数据透视列,即使在'其中'之后没有数据也是如此。条款已被适用。这样,生成的数据透视表将始终具有相同的列数,从而可以基于列对数据执行进一步的计算。
这相当于在Microsoft Excel中创建数据透视表并选择“没有数据的显示项目”。选项。
以下是当前代码:
=query(Memberships!A:P,"SELECT E,COUNT(H) where J >=1 group by E PIVOT B")
代码应该产生我想要的结果?
如果有办法,我可以使用查询语句或Google表格数据透视功能。
答案 0 :(得分:1)
如果要包含WHERE子句排除的行,则必须使用WHERE以外的其他内容。一个典型的解决方法是添加一个arrayformula(N(J:J>=1))
列,其中满足条件的行中为1,其他行为0。该列的选择sum()
代替count()
。结果是零计数返回0;因此保留相应的行并在枢轴中使用。
可以动态添加额外列,例如
=query({A2:J, N(J2:J>=1)}, "select Col5, sum(Col11) group by Col5 pivot Col2")
其中列现在由它们在数组{A2:J, N(J2:J>=1)}
中的位置引用:Col5是E,Col2是B,Col11是末尾的额外列。
人们可能会发现零的存在是不可取的。可以使用If条件过滤掉它们,尽管这可以使公式的长度增加一倍以上:
=arrayformula(if(query({A2:J,N(J2:J>=1)}, "select Col5, sum(Col11) group by Col5 pivot Col2") = 0, , query({A2:J,N(J2:J>=1)}, "select Col5, sum(Col11) group by Col5 pivot Col2")))
if
的第二个参数故意留空。