在Excel VBA中,我构建了一个在数据点之间进行插值的函数。语法是= Interpolate(引用单元格,引用表)。
我有一张看起来像这样的表:
MarkRun MaturityDate ZeroRate DiscountFactor
5-May-15 5-May-15 0.006999933 1
5-May-15 6-May-15 0.0069999329 0.999980822
5-May-15 5-Jun-15 0.008996562 0.9992362
5-May-15 6-Jul-15 0.008993128 0.998473566
5-May-15 4-Aug-15 0.006344264 0.99830152
5-May-15 5-Nov-15 0.006912941 0.996521185
5-May-15 5-May-16 0.007104633 0.992901219
... ... ...
每个MarkRun日期代表一条明显的曲线。每64个数据点,下一个MarkRun日期开始。在第一个新的日期,DiscountFactor等于1.日期从5月5日 - 5月15日到11日 - 8月 - 15日
我想为MarkRun和MaturityDate之间每个MarkRun日期有一个月的每个实例插值。目标是创建一个新表:
MarkRun MaturityRate ZeroRate
5-May-15 5-Aug-15 0.006744264
6-May-15 6-Aug-15
7-May-15 7-Aug-15
8-May-15 8-Aug-15
为此,我需要仅对与每个MarkRun日期对应的行进行插值。
因此,对于第二个表中的第一行,ZeroRate是从第一个表的前64行的引用表中插入的。第二个表中的第二行是从第一个表中接下来的64行插入的,依此类推。
如何指定插值这些值的范围?到目前为止,我已经:
=Interpolate(J2,OFFSET($A$2,0,3,64,2))
其中J2是参考单元格。如何推断这个以填充第二个表的其余部分?
感谢。