Excel中的外推法很简单:有一个数字列表(也可以选择它们的成对“X值”),并且可以使用
GROWTH()
功能。
成长()
也适用于插值:你只需要告诉它你想要计算的中间X值。我的问题是
外观
电子表格中的数据。下面是一个例子:
假设我有一些输入,通过一些过程得到一些输出。只是,实验中存在空白,因此没有为某些值生成输出:
出于好奇,我将数据复制到右侧,并使用了Excel的“extendwithgrowth Trend”:我突出显示了前两个条目(仅限),然后右键单击并拖动下一个小正方形
四
单元格(覆盖此处的最终值)并在上下文菜单中选择“增长趋势”。为了提醒自己这些值是Excel生成的,我给了它们一个灰色的背景:
嗯。生成的值(毫不奇怪)不是一个好的推断,因为它们没有考虑到后面的值。超过40%!还要注意的是,Excel的扩展功能是一种易于输入的机制,而不是一种计算工具——Excel以原始数字(多个小数位)的形式输入数据。
所以我通过使用
成长()
函数-同样只对前两个值进行因子分解,但也使用它们的成对X值
和
所需的插值项作为参数:
D4: =GROWTH(D$2:D$3,$A$2:$A$3,$A4)
D5: =GROWTH(D$2:D$3,$A$2:$A$3,$A5)
D6: =GROWTH(D$2:D$3,$A$2:$A$3,$A6)
谢天谢地,结果与上一篇专栏文章的结果相似(微软对这两个特性使用相同的机制!)我没有覆盖最后一个条目,因为毕竟它有我真正想要的值!我试图解决的问题是,计算值与之前相同,这是一个问题。
为了改进计算值,我需要合并最后一个值,但同时我希望保持输入值的“自然”序列。换句话说,我希望插值值被放置
原位
. 这意味着
成长()
(Range,Range,...)
语法。我试过了,结果
#REF!
经过一点谷歌搜索(和堆垛我找到了使用
INDIRECT()
E4: =GROWTH(INDIRECT({"E2:E3","E7"}),INDIRECT({"A2:A3","A7"}),A4)
E5: =GROWTH(INDIRECT({"E2:E3","E7"}),INDIRECT({"A2:A3","A7"}),A5)
E6: =GROWTH(INDIRECT({"E2:E3","E7"}),INDIRECT({"A2:A3","A7"}),A6)
不管怎么说都没用!这些值与前一个版本相同,没有包含上一个值。也许最后一个值不能获得更好的插值结果?因此,作为一个实验,我忽略了“原位”的要求,生成了一个“原位”版本,其中已知值后面跟着期望值,允许我使用简单的范围。成功!但为了强调数据顺序错误,我要求Excel也创建数据的X-Y图:
B13: =GROWTH(B$10:B$12,$A$10:$A$12,$A13)
B14: =GROWTH(B$10:B$12,$A$10:$A$12,$A14)
B15: =GROWTH(B$10:B$12,$A$10:$A$12,$A15)
当然,结果是指数型的而不是线性的,因此将Y轴设置为对数会生成一个非常可读的结果,并且它有效地屏蔽了数据的来回变化。但在内心深处,我们都
知道
数据是错误的-看看表!
也许,只是也许,如果我使用Excel的“排序数据”功能,它会为我划分范围,并告诉我应该如何编写公式?遗憾的是,虽然它看起来有效,但我得到了一个“循环引用”错误
B12
-范围没有被修改成不连续的,现在
B12号
所以,我的“最终”解决方案是保持以前的“exsite”版本,并且只需有一个“in site”列来完成
VLOOKUP()
在exsite(命名)表上-我需要告诉它做一个与
FALSE
参数,因为列表未排序:
F4: =VLOOKUP($A4,ExSitu,2,FALSE)
F5: =VLOOKUP($A5,ExSitu,2,FALSE)
F6: =VLOOKUP($A6,ExSitu,2,FALSE)
请注意,我用星号标记了该列,因为这是一个欺骗:这些值只是通过从另一个表复制来实现的。
嘘!在那之后,我的问题是:
有没有一种方法可以直接插值“原位”值,而不必使用“异地”查找表来生成结果?上面的例子故意简单明了:您可以很容易地想象一个较长的列表,其中有更多的空白要填充。