如何制定一个按月汇总值的公式?

时间:2014-11-06 16:27:19

标签: excel excel-formula excel-2013

我有一个数据库,其中包含按天订购的产品。如何制作一个excel公式,以便按月对值进行求和,以便在我向下拖动时每个月自动填充总和? 我希望这个公式在另一张表中,我不能在这张表中再创建任何列。 例如:

Col A       Col B
5/1/2014    411
5/2/2014    332
5/3/2014    247
5/4/2014    369
5/5/2014    780
5/6/2014    577
5/7/2014    653
5/8/2014    848
5/9/2014    925
5/10/2014   911
5/11/2014   444
5/12/2014   327
5/13/2014   440
5/14/2014   503
5/15/2014   613
5/16/2014   753
5/17/2014   875
5/18/2014   404
5/19/2014   628
5/20/2014   776
5/21/2014   829
5/22/2014   505
5/23/2014   515
5/24/2014   703
5/25/2014   511
5/26/2014   747
5/27/2014   707
5/28/2014   782
5/29/2014   101
5/30/2014   113
5/31/2014   283

1 个答案:

答案 0 :(得分:-1)

假设日期在A列中且值在B列中,您可以使用以下公式作为1月小计。

=SUMPRODUCT((MONTH($A$1:$A$1000)=ROWS(A$1:A1))*$B$1:$B$1000)

填写将获得随后几个月的小计。

说明:

$A$1:$A$1000是您的所有日期。更改此引用以匹配您的特定工作表和行数。

MONTH($A$1:$A$1000)生成一组数字,表示每个日期的月份,例如您的示例数据将生成{5, 5, ..., 5}

ROWS(A$1:A1)是让公式在下次填写时检查的技巧。对于第一个条目,这将等于1(1月的月份数),下一个将等于2(2月的月份数)。

MONTH($A$1:$A$1000)=ROWS(A$1:A1)生成一个布尔值数组,指示每个月是否属于指定的月份,例如,对于您的样本数据,数组将为{FALSE, FALSE, ..., FALSE},因为没有一个日期属于1月份。

MONTH($A$1:$A$1000)=ROWS(A$1:A1)*$B$1:$B$1000成对地将B列中的值乘以布尔值数组。因此,来自非匹配月份的数据返回0并且匹配返回来自B的值。

SUMPRODUCT会添加此数组中的值,仅为指定的月份提供总计。