计数非空白单元格根据另一列中的月份形成列并对单元格的值求和?

时间:2017-04-21 16:23:16

标签: excel excel-formula

我有一个带有两列的电子表格 - 第一列是日期列,第二列是金额列。现在我创建另外两列,分别名为“基于月份的交易数”和“基于月份的总金额”。金额列的某些单元格为空白。目前我的表格是这样的:

enter image description here

现在,我正在尝试添加公式,这些公式会自动计算交易次数和相对于月份的总金额。

我目前获得交易数量的公式是1月的=SUMPRODUCT(--(Month(A2:A7)=1))和4月的=SUMPRODUCT(--(Month(A2:A7)=4))。这种方法的问题是它们返回3和3个事务,而它们应该返回2和2,因为1个事务是空的。

同样,我用来获取每月总金额的公式为1月=SUM(B2:B4)和4月=SUM(B5:B7)。这里的问题是,如果我们每月有1000笔交易,那么选择单元格将会变得令人头疼。所以我需要的公式会根据月份自动求和。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

调整您的SUMPRODUCT以包括空格检查:

=SUMPRODUCT((Month(A2:A7)=1)*(B2:B7<>""))

然后是总和:

=SUMPRODUCT((Month(A2:A7)=1)*B2:B7)

答案 1 :(得分:0)

=SUMPRODUCT(--(MONTH(A2:A7)=1),--(B2:B7>0))应该为您解决此问题。您需要的只是附加列。 sumproduct的美妙之处在于它允许您在列中相乘并添加结果。

顺便说一句,如果你想自动化公式的月份部分,你可以使用MONTH(D2&" 1, 1900"),这基本上会使你的&#34;四月&#34;进入&#34; 1900年4月1日&#34;为了允许您调用MONTH函数。

这将为您留下可拖动的公式=SUMPRODUCT(--(MONTH(A$2:A$7)=MONTH(D2&" 1, 1900")),--(B$2:B$7>0))