使用线性插值填充空白单元格

首先,我不得不说,Excel不是我的交易工具,而我是为不是R用户的人做的。 这应该是一件容易的事情,但我正在努力寻找一种方法来使用线性插值来填充空单元格。 假设我有一个以下的Excel表单:

Row Date Interpolated date 1 09/09/13 2 3 15/10/13 4 5 6 7 8 9 10 03/04/14 

现在我想复制从DateInterpolated date的非空值,然后通过在相邻的非空单元格之间进行插值来填充空单元格。 请注意,“ Date列中空值之间的间隔是随意的。 结果应该看起来像这样(这是使用zoo包中的na.approx函数完成的):

 Row Date Interpolated date 1 09/09/13 09/09/13 2 <NA> 27/09/13 3 15/10/13 15/10/13 4 <NA> 08/11/13 5 <NA> 02/12/13 6 <NA> 26/12/13 7 <NA> 20/01/14 8 <NA> 13/02/14 9 <NA> 09/03/14 10 03/04/14 03/04/14 

据我所知,这可能不可能使用标准的Excel函数,也可能使用VBAmacros。 我是VBAmacros中的一个完整的新手。 我发现了一个类似的问题和解决scheme ,但我没有设法将解决scheme应用到我的Excel工作表。 我希望Interpolated date列自动更新,当Date列中的值更改或至less一个简单的button,用户可以按下来更新值。 这种情况下最简单的插值方法是什么?

PS。 这里是R代码,如果这将有所帮助:

 dat <- structure(list(Row = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), Date = structure(c(15957, NA, 15993, NA, NA, NA, NA, NA, NA, 16163), class = "Date")), .Names = c("Row", "Date"), row.names = c(NA, -10L), class = "data.frame") library(zoo) dat$Interpolated.date <- as.Date(na.approx(dat$Date)) 

如果列中有两个date间隔空格,select单元格( 包括两个填充的单元格 ),然后运行这个微小的VBAmacros:

 Sub DateInterp() Selection.DataSeries Rowcol:=xlColumns, Type:=xlGrowth, Date:=xlDay, _ Trend:=True End Sub 

您可以使用一个加载项,如http://www.srs1software.com/SRS1CubicSplineForExcel.aspx

您正在寻找线性插值函数。