我有这个数据
Date Data
8/25/2017 980
8/24/2017 64
8/23/2017 593
8/22/2017 595
8/21/2017
8/20/2017
8/19/2017 794
8/18/2017 437
8/17/2017
8/16/2017
8/15/2017
8/14/2017 629
如果我想要(794-595)/ 3在8月21日和8 *(794-595)/ 3在8月22日和8月17日同样(629-437)/ 4,2 *(629- 437)/ 4月16日等...
如何动态执行此操作,而不考虑
之间缺失值的数量答案 0 :(得分:1)
下面的代码提供了一个解决方案,动画gif显示了解决问题的代码。当然,有很多方法可以解决这个问题,但这很简单。至少这会显示您需要哪些输入。它假定x值增加1(与数据中一样)。否则你需要使用像斜坡和放大器这样的东西。拦截功能。
Option Explicit
Sub interpolate()
Dim r As Range, cell As Range
Set r = Application.InputBox("select interpolation range", , , Type:=8)
For Each cell In r
If cell = "" Then
cell = r(1) + (r(r.Rows.Count) - r(1)) * (cell.row - r.row) / (r(r.Rows.Count).row - r(1).row)
End If
Next
End Sub