平均每小时的仪表读数

时间:2014-12-29 23:14:42

标签: excel if-statement average hour

我有两列数据,每小时读数为五或六米:

time (HH:MM:SS) (C3:C103)        meter readings (D3:D103). 

我想平均每小时的读数,将数据压缩到每小时平均读数一次。

我试过=Averageif(C3:C103,Hour=10,D3:D103)但显然有些不对劲。

3 个答案:

答案 0 :(得分:1)

假设您只有C3:C103中的时间值(不是日期),那么您可以得到这样的结果:

在F2中列出数字0到23,然后在G2中复制使用此公式

=AVERAGEIFS(D$3:D$103,C$3:C$103,">="&F2/24,C$3:C$103,"<"&(F2+1)/24)

这将为您提供一个表格,其中包含每小时的结果

答案 1 :(得分:1)

您可以使用一个公式执行此操作。

以下是数组公式(需要按Ctrl + Shift + Enter,而不只是按Enter键添加),适用于10点钟的任何内容小时。

{=AVERAGE(IF(HOUR(C3:C55)=10,D3:D55))}

再次输入不带大括号的公式,然后按住Ctrl + Shift,然后按Enter

基本上,公式查看每个条目的小时,检查它是否为10,然后如果前一个条件为真则平均相邻的数字。

ALTERNATIVE:

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

  1. 选择您的数据
  2. 将您的时间列添加到数据透视表的行标签部分
  3. 将您的仪表读数列添加到值部分
  4. 在数据透视表中右键单击仪表读数数据,然后在菜单中选择Show Values As ... Average
  5. 在数据透视表中,右键单击时间数据,然后选择组选项。在选项框中,仅选择Hours,然后单击“确定”。
  6. 这将为您提供每小时的平均值,而无需任何其他公式。它也很好,因为除了每次获取新数据时刷新之外,它在创建后几乎不需要维护。

答案 2 :(得分:0)

我前面评论的解决方案:

使用数据透视表可以轻松完成此操作。首先,将HH:MM:SS列分解为小时列(因为您希望按小时分组)。然后将所有数据放入数据透视表中,并将'hours'列放在行标签中,并将值读数(确保平均值,而不是计数值)放在值字段中。这应该是你需要的。