Tag: 线性插值

任何简单的方法来做VLOOKUP结合Excel中的“线性插值”?

我正在制作一个用于计算婴儿体重/年龄z值的Excel表格(input:“婴儿月龄”和“婴儿体重”)。 要做到这一点,我需要从下表中获得特定月份的LMS参数。 http://www.who.int/childgrowth/standards/tab_wfa_boys_p_0_5.txt (对于整数月份数,这可以通过vlookup方法来完成,没有问题。)对于非整数月份数,我需要使用某种“线性插值”方法来获得近似的LMS数据。 问题是,Trend方法和Vlookup方法都不适合我。 对于Trend方法来说,它不是作为原始数据工作,就像L参数不是线性数据一样,如果我使用Trend方法,对于几个上个月来说,返回的数据将远离现有的数据。 至于Vlookup方法,它只是find最接近的月份数据。 我不得不使用多个“匹配”和“索引”方法来为我自己做“线性插值”。 但是,我想知道是否有任何现有的function呢? 我目前的L参数公式如下: =MOD([Month Age],1)*(INDEX('WHO BOY AGE WEIGHT'!A:D,MATCH([Month Age],'WHO BOY AGE WEIGHT'!A:A)+1,2)-INDEX('WHO BOY AGE WEIGHT'!A:D,MATCH([Month Age],'WHO BOY AGE WEIGHT'!A:A),2))+INDEX('WHO BOY AGE WEIGHT'!A:D,MATCH([Month Age],'WHO BOY AGE WEIGHT'!A:A),2)

Excel线性插值VBA

这个函数插入/外推已知x,y的表格例如, xy 1 10 2 15 3 20 Linterp(A1:B3,-1)= 0 但是,这个代码只能做两个相邻的数组。 我想修改这个代码,以便我可以select两个单独的数组,例如N106:N109,P106:P109。 我怎样才能在这个代码做这个调整? Function Linterp(r As Range, x As Double) As Double ' linear interpolator / extrapolator ' R is a two-column range containing known x, known y Dim lR As Long, l1 As Long, l2 As Long Dim nR As Long 'If x = […]