在 Excel 中计算连续数据的平均值

在 Excel 中计算连续数据的平均值

是否可以对AVERAGE自动重复记录但在未定义的时间段后重新开始的数据使用该功能?

  • 第 1 列是给定机器上的样本编号。因此它将是 1、2、3 等。
  • 第 2 列是从测试设备记录的实际数据。它将是 4.35、3.46、7.89 等。
  • 第 3 列DAQ Start在记录第一个样本的行上显示。然后,当该采样系列完成后,它会显示DAQ PAUSE

每次测试可能会采集 15 或 20 个样本。然后,当下一次采样开始时,它将从 开始DAQ Start,并继续,直到该采样完成。这在一个电子表格上重复多次。

有没有办法让电子表格对每次采样计算平均值?我无法使用实际数据,因为没有定义样本集,因此单元格引用会随着每次采样而变化。

我想使用DAQ StartDAQ Pause单元格来设置每个平均值的参考值。我该怎么做?

答案1

是的。

您也许可以使用 、 和 创造AVERAGEIF一些MATCH奇迹OFFSET

我只需对数据进行排序,添加一个在每个“DAQ 开始”行处递增的列来识别样本系列,然后使用数据透视表查找每个样本系列的平均值。

为了更清楚地说明,请添加 D 列并使用以下公式:

=IFERROR(IF(C2="DAQ Start",D1+1,D1),1)

只是IFERROR为了让它干净。每次点击“DAQ Start”时,此列都会递增。

第四列为“系列”

然后选择整个数据和列集并创建数据透视表(在“插入”功能区上)。将“系列”设置为行,将“数据”的平均值设置为值。现在您已经获得了每个系列的平均值。

数据透视表使用“系列”作为行并使用“数据”作为值

答案2

我不太明白你有什么第 1 列列 A,但似乎不重要,所以我会忽略它。如果它很重要,请更好地解释它。

我假设你的数据从第 1 行开始;即,没有标题行。将 

=IF(C1="DAQ Start", AVERAGE(OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1)), "")

单元格 D1(或您希望平均值所在的任何位置)。将 中的 8 更改C$8为您有数据的最后一行的数字 — 或者如果(如您所说)数据频繁/自动添加,并且好数据和第 999 行之间的行是空白的,则将其更改为更大的数字(例如 999)。然后D1向下拖动/填充单元格,直到覆盖所有数据。

  • =IF(C1="DAQ Start", …, "")表示 D 在 C没有列的任何行上仅在列中显示空白DAQ Start

    在行上,列 C DAQ Start(测试的第一行),

  • 用于查找当前行下方的列中 MATCH("DAQ PAUSE",C1:C$8,0)的第一个出现。这将返回该值的相对位置。例如,如果它在当前行中,将返回 1 — 但当然,这是不可能的,因为当前行包含那里。但如果在下一行,将返回 2。DAQ PAUSECMATCHDAQ StartDAQ PAUSEMATCH
  • OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1) 指定从当前行上的 Column 中的单元格开始 B(偏移量为 0 和 0)的范围,该范围足够高以到达该DAQ PAUSE行(使用返回值作为MATCH行数)和一 (1) 列宽。
  • AVERAGE(OFFSET(B1, 0, 0, MATCH("DAQ PAUSE",C1:C$8,0), 1))计算该范围的平均值。

例如,

示例表

2、3 和 10 的平均值是 5,而 1、2、3 和 42 的平均值是 12。我不清楚一个测试的结束和另一个测试的开始之间可能是什么;只要不是DAQ Start,我的函数就不会在意。

相关内容