平均每小时的读数
我有两列数据,每小时有五六个读数:
time (HH:MM:SS) (C3:C103) meter readings (D3:D103).
我想平均每个小时的读数将数据压缩到每小时平均读数。
我试过=Averageif(C3:C103,Hour=10,D3:D103)
但显然有错误。
假设你在C3:C103
只有时间值(不包含date),那么你可以得到如下结果:
在F2中列出数字0到23,然后使用G2中的这个公式复制下来
=AVERAGEIFS(D$3:D$103,C$3:C$103,">="&F2/24,C$3:C$103,"<"&(F2+1)/24)
这会给你一个表格,每个小时的结果
你可以用一个公式来做到这一点。
下面是一个Array公式(需要按Ctrl
+ Shift
+ Enter
,而不是Enter键来添加它),并且在10点钟时间内工作。
{=AVERAGE(IF(HOUR(C3:C55)=10,D3:D55))}
再次input没有大括号的公式,然后按住Ctrl
+ Shift
然后按Enter
基本上公式看每个条目的小时,检查是否是10,然后平均相邻的数字,如果前一个条件为真。
替代scheme:
如果您只是使用数据透视表,则根本不需要公式(或任何助手列)。
- select你的数据
- 将您的时间列添加到数据透视表的行标签部分
- 将您的仪表读数列添加到值部分
- 在数据透视表中,右键单击仪表读数数据,然后在菜单中select
Show Values As ... Average
。 - 在数据透视表中,右键单击时间数据并select组选项。 在选项框中select仅限
Hours
,然后单击确定。
这将给你每个小时的平均值,没有任何额外的公式。 这也很好,因为在你创build完成后,只需要很less的维护,而不是每次刷新你的新数据。
以前我的评论的解决scheme:
这很容易通过数据透视表来完成。 首先,只把HH:MM:SS列分解成一个小时的列(因为你想按小时分组)。 然后把所有的数据放到一个数据透视表中,然后把“小时”列放在行标签中,并在数值字段中input仪表读数(确保平均值,而不是计数值)。 这应该是你需要的。
类似于@ user3739391的build议,在每个时间点之间添加一个用于计量表更改的列,创build一个平均值为ΣVALUES和ROWS为时间的数据透视表。 然后按年,月,日和时间分组。