我有以下矩阵,请与Date an Value列相关:
Date Value Date Diff Hours Diff
29/12/2014 8:00 24.940
29/12/2014 9:00 24.960 0.04 1
29/12/2014 10:00 1
29/12/2014 11:00 25.020 0.08 1
29/12/2014 12:00 1
29/12/2014 13:00 1
29/12/2014 14:00 1
29/12/2014 15:00 25.070 1
可以看出,有时一条线有时多于一条线缺失值(缺失线的数量是动态的)。我想进行插值并使用线性插值计算缺失值。 (矩阵可能包含大量行)。
最终结果如下:
Date Value Date Diff Hours Diff
29/12/2014 8:00 24.940
29/12/2014 9:00 24.960 0.04 1
29/12/2014 10:00 24.99 1
29/12/2014 11:00 25.020 0.08 1
29/12/2014 12:00 25.0325 1
29/12/2014 13:00 25.045 1
29/12/2014 14:00 25.0575 1
29/12/2014 15:00 25.070 1
答案 0 :(得分:1)
我相信您的最佳方法是使用计算 Step 参数的Range.DataSeries方法。
Sub seriesFill()
Dim rng As Range
With Worksheets("Sheet11")
With .Cells(1, 1).CurrentRegion
Set rng = .Cells(.Rows.Count, 2)
Do While CBool(Application.CountBlank(.Columns(2)))
With .Range(rng, rng.End(xlUp))
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, _
Step:=(.Cells(.Cells.Count).Value2 - .Cells(1).Value2) / (.Rows.Count - 1)
End With
Set rng = .Cells(.Rows.Count, 2).End(xlUp)
Loop
End With
End With
End Sub
您的结果应与以下内容类似。这可以通过主页►编辑►填充►系列命令手动应用,但大量重复使子过程成为更可行的方法。