平均每小时的读数

我有两列数据,每小时有五六个读数:

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:

如果您只是使用数据透视表,则根本不需要公式(或任何助手列)。

  1. select你的数据
  2. 将您的时间列添加到数据透视表的行标签部分
  3. 将您的仪表读数列添加到值部分
  4. 在数据透视表中,右键单击仪表读数数据,然后在菜单中selectShow Values As ... Average
  5. 在数据透视表中,右键单击时间数据并select组选项。 在选项框中select仅限Hours ,然后单击确定。

这将给你每个小时的平均值,没有任何额外的公式。 这也很好,因为在你创build完成后,只需要很less的维护,而不是每次刷新你的新数据。

以前我的评论的解决scheme:

这很容易通过数据透视表来完成。 首先,只把HH:MM:SS列分解成一个小时的列(因为你想按小时分组)。 然后把所有的数据放到一个数据透视表中,然后把“小时”列放在行标签中,并在数值字段中input仪表读数(确保平均值,而不是计数值)。 这应该是你需要的。

类似于@ user3739391的build议,在每个时间点之间添加一个用于计量表更改的列,创build一个平均值为ΣVALUES和ROWS为时间的数据透视表。 然后按年,月,日和时间分组。

Interesting Posts