如何根据值将一列分成多列?

How can I separate a column into multiple columns based on values?

我搜索了很多页面,但我找不到解决我的问题的方法,除非以相反的顺序。我已经简化了我所做的事情,但是我有一个查询来寻找我的数据中的信息 sheet。这里有 3 列,日期,金额和来源。

我希望通过查询功能,能够创建不同的列,根据每个月的单元格值来计算列 C 的信息,就像这样

我对公式的开头没问题

=QUERY(A2:C,"select month(A)+1, sum(B), count(C) where A is not null group by month(A)+1")

但是,当我通过将 2 个查询放在一个数组公式中来尝试一些不同的事情时,显然行数不匹配,因为某些源的负号为 0。

你有解决我想做的事情的方法吗?提前谢谢你:)

解法:

在 Google 查询语言中不可能有一个查询语句,其中一个结果按一列分组,另一个结果按另一列分组。

前两列可以这样:

=QUERY(A2:C,"select month(A)+1, sum(B) where A is not null group by month(A)+1 label month(A)+1 'Month', sum(B) 'Amount'")

要为后续列创建列标签,请在第一行中使用,在我的示例中,I1:

=TRANSPOSE(UNIQUE(C2:C))

然后在单元格 I2 中输入:

=COUNTIFS(arrayformula(month($A:$A)),$G2,$C:$C,I)

然后水平和垂直拖动以应用于整个table。

结果:

尝试:

=INDEX({
 QUERY({MONTH(A2:A), B2:C}, 
 "select Col1,sum(Col2) where Col2 is not null group by Col1 label Col1'month',sum(Col2)'amount'"), 
 QUERY({MONTH(A2:A), B2:C, C2:C}, 
 "select count(Col3) where Col2 is not null group by Col1 pivot Col4")})