Excel 方法查找最接近给定时间段的值

Excel 方法查找最接近给定时间段的值

我有一些以非均匀时间间隔测量的数据,例如:

Time(s)     Value(KB)
  2.1         304
 43.0         400
 60.2         380
 87.0         440
 89.5         445
102.2         460
124.3         470

我在 CSV 中拥有这个数据,时间从 T=0 开始增加,如上所述,并且我想Value以周期性间隔(60 秒)进行采样以匹配我拥有的其他一些数据。

我试图使用 Microsoft Excel 2007 来完成将数据缩减为最接近每个 60 秒间隔的值的任务(有一点数据,因此它是始终较高(124.3)还是较低(102.2)或绝对值最接近(124.3)并不重要)。我尝试将公式应用于时间列 (MOD(Tn, 60)),但我无法找到一种方法来获取此输出(时间值在 0 到 60 之间循环)并过滤掉除每个循环中最接近 60 的值之外的所有内容。有什么建议吗?

答案1

在另一个表中执行以下操作:

  1. D列:输入的值有60、120、180等等。
  2. E 列:=MATCH(D1,$A:$A)- 这将显示值小于 D 列的最后一行
  3. F 列:=INDEX($A:$A,E1)- 返回较低的秒值
  4. G 列:=INDEX($A:$A,E1+1)- 返回较高的秒值
  5. H 列:=INDEX($B:$B,IF(D1-F1<G1-D1,E1+1,E1))- 这将为您提供最接近的值(KB)

或者,只需将此公式放在 F 列中:

=INDEX($B:$B,IF(D1-INDEX($A:$A,E1)<INDEX($A:$A,E1+1)-D1,E1+1,E1))

或者在 G 列中使用这个大公式:

=INDEX($B:$B,MATCH(D1,$A:$A)+IF(D1-INDEX($A:$A,MATCH(D1,$A:$A))<INDEX($A:$A,MATCH(D1,$A:$A)+1)-D1,1,0))

答案2

将分钟间隔(以秒为单位)附加到 ColumnA,确保最新时间在现有数据之后,并按时间对 A:B 进行排序,从最小到最大,我的数据有标题。过滤 ColumnB 以仅选择空白并插入:

=如果 (A4-A3>A5-A4,B5,B3)

进入第一个空白处(此处为第 4 行)并向下复制,然后删除最后一行:

SU540294 示例

可以相对容易地扩展到在值之间进行插值(这可能更准确)而不是简单地选择最接近的值。

相关内容