在没有数据透视表的情况下计算每日数据的月平均值

时间:2015-11-18 00:36:10

标签: excel excel-vba excel-formula vba

我的工作表包含两列:列A包含格式dd/mm/yyyy的日期,列B包含每日数据。从每日数据我必须生成每个月的月平均值没有数据透视表。有些日子根本没有数据。我不能使用数据透视表,因为我必须使用月平均值来确定日后数据中的异常值。

对于此示例,重要的是我不使用数据透视表,并且我可以在列表中生成任何月份和年份的月平均数据。解决方案可以是Excel公式或VBA。

4 个答案:

答案 0 :(得分:3)

假设您在D列中有月份,请在E2中输入此公式并复制到上个月

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,">="&D2,$A$1:$A$62,"<="&EOMONTH(D2,0))

enter image description here

答案 1 :(得分:0)

  

有些日子根本没有数据。

如果这意味着某些日期没有行,而您想要根据整月计算平均值,则可以使用以下公式:

继续以EEM给出的例子

=SUMIFS($B$1:$B$62,$A$1:$A$62,">="&D2,$A$1:$A$62,"<="&EOMONTH(D2,0))/DAY(EOMONTH(D2,0))

答案 2 :(得分:0)

如果每日数据包含一些#N / A,可以添加其他标准来跳过非数字数据:

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,">="&D2,$A$1:$A$62,"<="&EOMONTH(D2,0),$B$1:$B$62,"<10E69")

答案 3 :(得分:0)

给定一个日期,您可以计算该日期的月末和月初。假设任何给定的日期在E4中:

在月末

=EOMONTH(E4,0)

本月初

=EOMONTH(EDATE(E4,-1),0)+1

如果您将要查看的月份中的日期(任意日期)放入单元格E4,以上两个代码段将为您提供该月的最后一天和第一天。 EDATE允许您添加和减去整数以更改月份。我们与当前月份相距一个月,在单元格E4中的日期内找到,然后找到该月末并将其添加一个成为下个月的第一天。它可以与任何日期一起使用。下面的示例显示了一个月的平均成绩,并参考了该月中的任何给定日期。

Pic of the above Excel example

=AVERAGEIFS(C2:C11, B2:B11,">=" & EOMONTH(EDATE(E4,-1),0)+1, B2:B11,"<=" &EOMONTH(E4,0), A2:A11, E2)