Excel迭代运算的实例及概念
Excel中的迭代运算,可以解决很多问题,同时,迭代运算也给很多学习新手带来困扰。
现在,本站给您详细介绍什么是Excel中的迭代运算,如何使用迭代运算。
一、迭代运算的概念
所谓的迭代运算,没有什么稀奇的,请大家不要相信所谓的砖家在某些“权威”书籍里面所阐述的观点。
说得简单点,迭代运算就是递归计算,或者也可以简单的称为循环运算。
凡是学习过计算机程序设计的,没有不知道递归运算的。
如果您没学习过递归,那么,本站再给您介绍个简单例子。
例如解方程f(x)=0,牛顿切线法是这样构造迭代格式的:X(n)=X(n-1)-f[X(n-1)]/f'[X(n-1)](n=1,2,3,……),在所考虑范围内任意取一个值X(1),用上面迭代公式就可以求得X(2),X(3),……,从理论上讲,当n→∞时,得到的就是方程的根,但实际上我们总不能将迭代次数进行到无穷大,需要在某一时刻停止迭代,通常有两种方式来控制迭代次数:
1、选择迭代次数n,当迭代次数达到n时,停止迭代;
2、选择精度ε,当|X(n)-X(n-1)|<ε时,停止迭代。
EXCEL里默认的迭代次数是n=100,精度ε=0.001,在工具→选项里可以自己设置,使求得的结果近似程度更好些。
二、迭代运算的使用
比如,您在A1单元格输入一个值10,然后,选择B2单元格,执行菜单操作:“工具”→“选项”,弹出如下图对话框。
勾√选“迭代计算”,然后输入次数,比如本例的1,还可以设置最大误差。
好了,以后,确认并退出对话框。
接着,再选择B1单元格,输入公式:=A1+B1
大家可能会发问,为什么B1单元格的公式为:=A1+B1,单元格自身调用单元格本身的值,这有悖于常理,一般来说,会弹出公式错误的提示。由于我们在上面已经设置好了迭代运算,所以不会弹出提示。
您可能明白了吧,单元格本身调用自身的数据进行运算后再把结果拿给单元格本身。这就是迭代运算,也是循环运算。
下面的内容,将会给出迭代运算的自定义函数代码。
三、迭代运算的常见问题
问题:整个表格中任何一个方格数据的更新都会引起B1的迭代更新,即导致B1的数据发生改变。
原因:Excel的函数和公式都是全局的,不论哪个方格数据的更新,当前表格中所有方格的数据都会重新计算并更新。
解决方法:把B1的无条件更新改为受限制的.选择B1,输入" =if(cell("address")="$a$1",a1+b1,b1)"。选择B1并向下拖动,可将迭代计算扩展到同列其它行,if函数的参数2和参数3能自动更新,参数1中的"$a$1"因为是字符串,所以不会自动更新,因此需要手动更改,比如第2行为=if(cell("address")="$a$1",a2+b2,b2),将$a$1改为$a$2即可,依此类推。
注意:
1.根据函数的限制条件,在A1方格输入数据后,按Enter键或TAB键都可以更新B1,但使用鼠标点其它方格,则B1不能迭代更新。
2.不要在某一个方格具有输入焦点时点击A1,因为这样会使B1迭代更新。
四、迭代运算的自定义函数
以下的函数代码就是迭代运算的函数代码之一。
Function MyDD(i As Single) As Single
i = i / 5
If i < 5 Then
MyDD = i
Else
MyDD = MyDD(i)
End If
End Function
懂得程序设计的人都明白,上述的迭代运算函数代码,其实就是递归代码,换句话说,也是循环代码。