我有点迷失,试图找到类似于 R 的聚合函数的解决方案。数据透视表或 Excel 的分组函数不适用。
数据是一天中几乎每秒进行的一系列测量。表格中有日期、时间和相应的测量值的列。
最好按分钟/小时对值进行分组。最终得到一个更紧凑的表格,其中时间戳缩短为分钟,平均值作为测量值的集合。
有任何想法吗?
答案1
我们希望将数据放入具有正确总和的新表中。因此,在不更改现有数据的情况下,我们将在新工作表上创建一个新表,其中包含我们感兴趣的时间:
Time | Mean Value
12:00|
12:01|
12:02|
12:03|
...等等。您可以输入前两次,然后使用单元格突出显示右下角的填充柄将它们复制下来,每一步增加一分钟。
在“平均值”列中,我们将使用AVERAGEIFS
函数按条件计算平均值。公式如下:
=AVERAGEIFS($B$2:$B$361,$A$2:$A$361,">=" & $D2,$A$2:$A$361, "<" & $D3)
...其中 B2:B361 是包含值的范围,A2:A361 是包含时间的范围,D2 是包含开始时间的单元格(在上表中为 12:00),D3 是包含下一个时间戳的单元格(在表中为 12:01)。这将计算时间戳大于或等于每个分钟时段但小于下一分钟的所有值的平均值。
您可以使用类似的结构将分钟缩短为小时。
请注意,如果没有与时间段匹配的值,此公式将给出 #DIV/0! 错误。IFERROR
如果需要,您可以通过将整个公式包含在函数中来解决此问题。