Excel 根据不带数据透视表的每日数据计算月平均值

Excel 根据不带数据透视表的每日数据计算月平均值,excel,excel-formula,vba,Excel,Excel Formula,Vba,我的工作表包含两列:A列包含格式为dd/mm/yyyy的日期,B列包含每日数据。从每天的数据中,我必须生成没有数据透视表的每个月的月平均值。有些日期根本不包含任何数据。我不能使用数据透视表,因为我必须在以后的阶段使用月平均值来识别日常数据中的异常值 对于本例,重要的是我不使用数据透视表,我可以生成列表中任何月份和年份的月平均数据。解决方案可以是Excel公式或VBA。假设您在D列中有月份在E2中输入此公式,并复制到上个月 =AVERAGEIFS($B$1:$B$62,$A$1:$A$62,"&g

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


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

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

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

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,“假设您在
D
列中有月份,请在
E2
中输入此公式并复制到上个月

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,">="&D2,$A$1:$A$62,"<="&EOMONTH(D2,0))
=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,”
有些日期根本不包含任何数据

如果这意味着某些日期没有行,并且您希望基于整月计算平均值,则可以使用以下公式:

继续EEM给出的示例

=SUMIFS($B$1:$B$62,$A$1:$A$62,">="&D2,$A$1:$A$62,"<="&EOMONTH(D2,0))/DAY(EOMONTH(D2,0))
=SUMIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,”
有些日期根本不包含任何数据

如果这意味着某些日期没有行,并且您希望基于整月计算平均值,则可以使用以下公式:

继续EEM给出的示例

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

=SUMIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,“如果每日数据包含一些#N/A,则可以添加其他条件以跳过非数字数据:

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

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,”如果日常数据包含一些不适用的内容,可以添加其他条件以跳过非数字数据:

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

=AVERAGEIFS($B$1:$B$62,$A$1:$A$62,“>=”&D2,$A$1:$A$62,“给定一个日期,您可以计算该日期的月末和月初。假设任何给定日期都在E4中:

月底

=EOMONTH(E4,0)
=EOMONTH(EDATE(E4,-1),0)+1
这个月的第一天

=EOMONTH(E4,0)
=EOMONTH(EDATE(E4,-1),0)+1
如果您将要查看的月份的日期(任意日期)放入单元格E4,上述两个代码snipet将为您提供月份的最后和第一天。EDATE允许您添加和减去整数以更改月份。我们从当前月份中减去一个月,在单元格E4中的日期内找到,然后找到月份的结束日期and向其添加一个1,使其成为下个月的第一天。它将与任何日期一起使用。下面的示例显示了一个月内的平均成绩,该月内的任何给定日期都是如此


=AVERAGEIFS(C2:C11,B2:B11,“>=”&EOMONTH(EDATE(E4,-1),0)+1,B2:B11,“给定一个日期,您可以计算该日期的月末和月初。假设任何给定日期都在E4:

月底

=EOMONTH(E4,0)
=EOMONTH(EDATE(E4,-1),0)+1
这个月的第一天

=EOMONTH(E4,0)
=EOMONTH(EDATE(E4,-1),0)+1
如果您将要查看的月份的日期(任意日期)放入单元格E4,上述两个代码snipet将为您提供月份的最后和第一天。EDATE允许您添加和减去整数以更改月份。我们从当前月份中减去一个月,在单元格E4中的日期内找到,然后找到月份的结束日期and向其添加一个1,使其成为下个月的第一天。它将与任何日期一起使用。下面的示例显示了一个月内的平均成绩,该月内的任何给定日期都是如此


=AVERAGEIFS(C2:C11,B2:B11,“>=”&EOMONTH(EDATE(E4,-1),0)+1,B2:B11,“看一看
=AVERAGE()
-Function.
AVERAGEIFS()
AVERAGEIFS()
会起作用,因为它们允许您输入标准来确定要平均哪些值。看一看
=AVERAGE()
-Function.
AVERAGEIFS()
AverageIfs()
将起作用,因为它们允许您输入标准来确定要平均的值。很高兴这是您所需要的。感谢您确认答案,因为这将有助于我们保持网站的更新,并为其他有相同问题的用户提供更好的参考。很高兴这是您所需要的。感谢您确认答案l帮助我们不断更新网站,为其他有相同问题的用户提供更好的参考。