给定月份和年份的平均值(Microsoft Excel)
George的工作表包含日期(在A列中)和与这些日期相关联的值(在B列中)。该工作表包含最近几年的值。他想计算给定年份中给定月份所有值的平均值。例如,乔治想计算2020年2月所有值的平均值。
有几种不同的方法来解决此问题。一种方法是根据数据创建数据透视表。 (数据透视表非常适合聚合和分析大量数据。)您可以轻松地将value字段设置为Average(而不是默认的Sum),并根据需要将Dates列分组。
如果您不想使用数据透视表,则可以将任意数量的公式添加到工作表中。例如,以下公式使用SUMPRODUCT函数计算平均值:
=SUMPRODUCT((MONTH(A2:A1000)=5)(YEAR(A2:A1000)=2020)(B2:B1000)) / (SUMPRODUCT((MONTH(A2:A1000)=5)(YEAR(A2:A1000)=2020)1))
该公式假定您的日期和值从第2行开始(以允许出现标题),并且不超过1000行。如果数据中没有2020年2月的日期,则该公式返回#DIV / 0!错误。
另一种方法是使用数组公式,例如:
=AVERAGE(IF((MONTH(A2:A1000)=5)*(YEAR(A2:A1000)=2020),B2:B1000))
这种方法比SUMPRODUCT公式短,但是您必须记住在输入公式时按住Ctrl + Shift + Enter。
如果没有所需月份和年份的数据,您还将得到除以零的错误。
还有一种方法是使用Excel的数据库功能之一DAVERAGE。您需要做的只是建立一个标准表,该表定义您要查找的内容。例如,假设列上的标题是原始的,例如日期(单元格A1)和值(单元格B1)。
您可以在其他地方设置条件表,例如D1:E2。该表如下所示:
Date Date >1/31/20 <3/1/20
条件表表示您希望DAVERAGE使用“日期”列中包含大于1/31/20的日期和小于3/1/20的日期的任何内容。公式如下:
=DAVERAGE(A1:B1000,"Value",D1:E2)
第一个参数定义您的数据库,第二个参数指示您要对“值”列(列B)中的信息求平均,第三个参数告诉DAVERAGE标准表位于何处。
一种相当简单的方法是应用日期过滤并使用SUBTOTAL函数。在单元格中输入以下公式:
=SUBTOTAL(101,B2:B1000)
在数据范围内选择一个单元格并过滤数据(显示功能区的“数据”选项卡,然后单击“过滤器”工具)。单击A列顶部的过滤箭头,然后选择“日期过滤器” |“过滤器”。下拉列表中的“自定义过滤器”。 Excel将显示“自定义自动筛选”对话框。
(请参见图1。)
图1.“自定义自动筛选”对话框。
使用对话框中的控件可以指定要大于1/31/20且小于3/1/20的记录。单击“确定”时,仅显示2020年2月内的那些记录,小计公式显示这些可见记录的平均值。
但是,也许最简单的方法是使用AVERAGEIFS函数。它使您可以根据相关值(在这种情况下为日期)是否满足指定的条件来计算某些值的平均值。公式的外观如下:
=AVERAGEIFS(B2:B1000,A2:A1000,">31 Jan 2020",A2:A1000,"<01 Mar 2020")
请注意,这不是数组公式,您不需要为您的条件定义条件表-它们直接内置在公式中。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10671)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:
链接:/ excel-Averaging_Values_for_a_Given_Month_and_Year [给定月份和年份的平均值]。