如何根据值将一列分成多列?
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")})
我搜索了很多页面,但我找不到解决我的问题的方法,除非以相反的顺序。我已经简化了我所做的事情,但是我有一个查询来寻找我的数据中的信息 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")})