每小时测量的平均值和标准偏差

Average and Standard Deviation for every hour of measurements

我有一个 Excel 文件,其中包含时间日志和每次测量的数据,该列表会保留数天的日志。我想计算每小时测量值的平均值和标准差。

我的问题是每个小时的测量量不同,所以我什至无法开始。

列表如下所示:

Time            measurement
28/8/2013 16:17 3831
28/8/2013 16:36 3668
28/8/2013 16:36 3685
28/8/2013 16:36 3676
28/8/2013 17:13 3671
28/8/2013 17:36 3669
28/8/2013 17:36 3664
28/8/2013 18:36 3654
28/8/2013 18:36 3661

我需要这样的输出:

  Hour             Average      Stdv
28/08/2013 16:00    3715    77.64448897
28/08/2013 17:00    3668    3.605551275
28/08/2013 18:00    3657.5  4.949747468

有什么想法吗?

使用 Time 表示 ROWS 和 measurement 表示 VALUES 两次数据透视,一次作为平均值,一次作为 StdDev。通过选择年、月、日和小时对行进行分组。

一个AVERAGEIFS function可以轻松完成第一个任务。

=AVERAGEIFS(B:B, A:A, ">="&D3, A:A, "<"&D3+TIME(1, 0, 0))

您将需要一个 数组公式 作为第二个 STDEV.S function 的条件。

=STDEV.S(IF(A:A>=D3, IF(A:A<D3+TIME(1, 0, 0), B:B)))

数组公式需要用Ctrl+Shift+Enter↵完成。 尝试将整列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。

如果 A 列中的日期时间按升序排序,则此标准公式应该有效。

=STDEV.S(INDEX(B:B, IFERROR(MATCH(D3-TIME(0, 0, 1), A:A)+1,2)):INDEX(B:B, MATCH(D3+TIME(0, 59, 59), A:A)))

虽然这看起来更复杂,但它使用 INDEX/MATCH 函数对将 B 列的值范围解析为 A 列的匹配值。这应该大大减少对一长串日期时间的计算。这不是数组公式,不需要 Ctrl+Shift+Enter。