【问题标题】:Dynamic interpolation动态插值
【发布时间】:2016-04-24 14:59:51
【问题描述】:

我有以下矩阵,请与日期和值列相关:

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

【问题讨论】:

    标签: excel interpolation


    【解决方案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
    

    您的结果应该类似于以下内容。这可以通过 Home ► Editing ► Fill ► Series 命令手动应用,但大量重复使子过程成为更可行的方法。

            

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      相关资源
      最近更新 更多