按年份和月份总结分组
我有一个工作表移动两个领域:
mydate | amount 2009-01-01 | 10.00 2009-01-02 | 13.00 2009-02-01 | 11.00 2009-02-05 | 12.00 2009-02-08 | 52.00
我希望在另一个工作表MonthSum中显示按列+ date的年份+月份分组的数据总和:
mydate | amount 2009-01 | 23.00 2009-02 | 75.00
我不想指定电子表格必须总和的单元格,我想要一个通用公式来将每个月+年的数据分组。 如果我在一个MySQL数据库上,我会简单地做:
SELECT DATE_FORMAT('%Y-%m', mydate), SUM(amount) FROM mytable GROUP BY DATE_FORMAT('%Y-%m', mydate)
我需要解决scheme在Google电子表格上工作。
我认为可能的解决scheme将使用SUMIF或数据透视表或谷歌电子表格查询function 。
你可以做一个数组公式,我把公式在A2
和A1
,我把月份数:
=ARRAYFORMULA(SUMPRODUCT(1*(MONTH(Sheet1!$A$2:$A$6)=A1)*Sheet1!$B$2:$B$6))
请参阅Google电子表格中的文档
[编辑]如果你想年份和月份:
=ARRAYFORMULA(SUMPRODUCT(1*(YEAR(Sheet1!$A$2:$A$8)=A2)*(MONTH(Sheet1!$A$2:$A$8)=B2)*Sheet1!$B$2:$B$8))
这是数据透视表的作用。
我已经创build了一个使用你的数据的例子 。
首先,添加一个列来格式化date作为每月的string,例如“2009-01”,公式如下:
TEXT(A2, "YYYY-MM")
然后突出显示数据,然后select“数据”>“数据透视表报告…”
对于行,select“月”
对于值,select“金额”
TADA! 而已!
有关透视表的快速概述,请参阅此Google博客文章 。
除了来自JMax的贡献之外,让我使用QUERY函数提供以下公式…
=query(index('Sheet3'!A:B); "select year(Col1)+(month(Col1)+1)/100,sum(Col2) where Col1 is not null group by year(Col1)+(month(Col1)+1)/100 label year(Col1)+(month(Col1)+1)/100 'mydate',sum(Col2) 'amount' ")
注意:我假设原始数据是在Sheet3中,而我的结果显示年月组合为yyyy.mm而不是yyyy-mm我创build了一个插图:
我正在处理类似的问题。 我发现这个公式运作良好。
=SUMIF(ARRAYFORMULA(MONTH('Sheet1'!A:A)), A2, 'Sheet1'!B:B)
在A2
单元我把我想要的总计。