Google工作表数据透视表:显示没有数据的项目

时间:2017-01-25 03:17:10

标签: google-sheets google-query-language

我正在尝试找到正确的Google查询语法,以便为源数据中存在的每个行元素显示一个数据透视列,即使在'其中'之后没有数据也是如此。条款已被适用。这样,生成的数据透视表将始终具有相同的列数,从而可以基于列对数据执行进一步的计算。

这相当于在Microsoft Excel中创建数据透视表并选择“没有数据的显示项目”。选项。

以下是当前代码:

=query(Memberships!A:P,"SELECT E,COUNT(H) where J >=1 group by E PIVOT B")

代码应该产生我想要的结果?

如果有办法,我可以使用查询语句或Google表格数据透视功能。

1 个答案:

答案 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的第二个参数故意留空。