如何dynamic地做一个缺失值的行中的数据线性插值?

我有这个数据

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 

如果我想在8月21日的小区(794-595)/ 3和8月22日的小区2 *(794-595)/ 3以及8月17日的类似的(629-437)/ 4,2 *(629-437)/ 4月16日等…

如何dynamic执行此操作,而不考虑中间缺less值的数量

下面的代码提供了一个解决scheme,animationGIF显示解决您的问题的代码。 当然,解决这个问题有很多方法,但是这很简单。 至less这表明你将需要什么投入。 它假定x值增加1(就像你的数据一样)。 否则,你需要使用斜坡和拦截function。

在这里输入图像说明

 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