Excel的自动填充算法究竟是什么?


50

Excel中自动填充使用的算法是什么?

例如,当我在列中输入数字3,4,5,7,8然后使用自动填充时,我得到以下结果:

 3
 4
 5
 7
 8
 9.3
10.6
11.9
13.2
14.5
15.8
17.1
18.4

2
Excel可能会检查平均增加量并将其用于自动填充。 (在你的系列中,你增加了3倍,一次增加了2倍,平均值增加了1.25,将其四舍五入到一位数(因为我没有附属于MS我不知道为什么),那是1.3,所以每次增加1.3行。)。
Máté Juhász

3
@MátéJuhász这是一个很好的猜测,以及我最初的想法。然而事实证明是不正确的。有关详细信息,请参阅我的回答
robinCTS

观察结果是最后两个给定值之间的差值是1.3,然后自动填充值都增加1.3。对这组数据的最简单(但我现在已经学会了,错误的)解释是它只是重复最后的差异。
Thomas Padron-McCarthy

@ ThomasPadron-McCarthy实际上,最后两个给定值是7和8,因此差值为1. 1.3是计算的线性趋势斜率,正如您正确确定的那样,然后逐渐添加以获得自动填充值。
robinCTS

@robinCTS:啊,谢谢。我的错。
Thomas Padron-McCarthy

Answers:


67

Excel自动填充时使用其线性趋势方法。这采用了 最小二乘法 算法。

这与使用的算法相同 TREND() 功能如下所示:

Worksheet Screenshot

在中输入以下公式 C6 并按住Ctrl键进入/复制粘贴/填充到列的其余部分:

=TREND($C$1:$C$5,$B$1:$B$5,B6)

下面的图表显示了新值的趋势线。

最小二乘法为原始数据点创建“最佳拟合”线。新数据点基本上是从这一行中提取的。

Chart Screenshot


12
不是我怀疑你的答案,但只是好奇你怎么知道他们使用最小二乘法。 (或者,更广泛地说,您是否在“引擎盖下”进行了一些调查?或者此类应用程序使用此方法是否常见?)
BruceWayne

7
@BruceWayne是的,这是一个常见的方法 简单的线性回归
0xFEE1DEAD

10
@BruceWayne没有必要进行调查;-)在网上的一些地方提到它。另外,Excel自己的文档说明了 TREND() 函数使用“最小二乘法”,如你所见,我确认产生与自动填充相同的结果。所以,只要您可以相信Micro $ oft自己的文档(现在我们都有多准确),我会说这使得它具有相当的结论性。加上0xFEE1DEAD所说的。
robinCTS


1
强制性Joel Spolsky关于excel的视频。跳过约8分钟解释Excel如何引用单元格,这对定义自己的系列非常有用。 youtube.com/watch?v=0nbkaYsR94c
Bindelstif
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.