Excel中的迭代運(yùn)算,可以解決很多問題,同時,迭代運(yùn)算也給很多學(xué)習(xí)新手帶來困擾。
現(xiàn)在,本站給您詳細(xì)介紹什么是Excel中的迭代運(yùn)算,如何使用迭代運(yùn)算。
一、迭代運(yùn)算的概念
所謂的迭代運(yùn)算,沒有什么稀奇的,請大家不要相信所謂的磚家在某些“權(quán)威”書籍里面所闡述的觀點(diǎn)。
說得簡單點(diǎn),迭代運(yùn)算就是遞歸計(jì)算,或者也可以簡單的稱為循環(huán)運(yùn)算。
凡是學(xué)習(xí)過計(jì)算機(jī)程序設(shè)計(jì)的,沒有不知道遞歸運(yùn)算的。
如果您沒學(xué)習(xí)過遞歸,那么,本站再給您介紹個簡單例子。
例如解方程f(x)=0,牛頓切線法是這樣構(gòu)造迭代格式的:X(n)=X(n-1)-f[X(n-1)]/f[X(n-1)](n=1,2,3,……),在所考慮范圍內(nèi)任意取一個值X(1),用上面迭代公式就可以求得X(2),X(3),……,從理論上講,當(dāng)n→∞時,得到的就是方程的根,但實(shí)際上我們總不能將迭代次數(shù)進(jìn)行到無窮大,需要在某一時刻停止迭代,通常有兩種方式來控制迭代次數(shù):
1、選擇迭代次數(shù)n,當(dāng)?shù)螖?shù)達(dá)到n時,停止迭代;
2、選擇精度ε,當(dāng)|X(n)-X(n-1)|<ε時,停止迭代。
EXCEL里默認(rèn)的迭代次數(shù)是n=100,精度ε=0.001,在工具→選項(xiàng)里可以自己設(shè)置,使求得的結(jié)果近似程度更好些。
二、迭代運(yùn)算的使用
比如,您在A1單元格輸入一個值10,然后,選擇B2單元格,執(zhí)行菜單操作:“工具”→“選項(xiàng)”,彈出如下圖對話框。

勾√選“迭代計(jì)算”,然后輸入次數(shù),比如本例的1,還可以設(shè)置最大誤差。
好了,以后,確認(rèn)并退出對話框。
接著,再選擇B1單元格,輸入公式:=A1+B1
大家可能會發(fā)問,為什么B1單元格的公式為:=A1+B1,單元格自身調(diào)用單元格本身的值,這有悖于常理,一般來說,會彈出公式錯誤的提示。由于我們在上面已經(jīng)設(shè)置好了迭代運(yùn)算,所以不會彈出提示。
您可能明白了吧,單元格本身調(diào)用自身的數(shù)據(jù)進(jìn)行運(yùn)算后再把結(jié)果拿給單元格本身。這就是迭代運(yùn)算,也是循環(huán)運(yùn)算。
下面的內(nèi)容,將會給出迭代運(yùn)算的自定義函數(shù)代碼。
三、迭代運(yùn)算的常見問題
問題:整個表格中任何一個方格數(shù)據(jù)的更新都會引起B(yǎng)1的迭代更新,即導(dǎo)致B1的數(shù)據(jù)發(fā)生改變。
原因:Excel的函數(shù)和公式都是全局的,不論哪個方格數(shù)據(jù)的更新,當(dāng)前表格中所有方格的數(shù)據(jù)都會重新計(jì)算并更新。
解決方法:把B1的無條件更新改為受限制的.選擇B1,輸入" =if(cell("address")="$a$1",a1+b1,b1)"。選擇B1并向下拖動,可將迭代計(jì)算擴(kuò)展到同列其它行,if函數(shù)的參數(shù)2和參數(shù)3能自動更新,參數(shù)1中的"$a$1"因?yàn)槭亲址?所以不會自動更新,因此需要手動更改,比如第2行為=if(cell("address")="$a$1",a2+b2,b2),將$a$1改為$a$2即可,依此類推。
注意:
1.根據(jù)函數(shù)的限制條件,在A1方格輸入數(shù)據(jù)后,按Enter鍵或TAB鍵都可以更新B1,但使用鼠標(biāo)點(diǎn)其它方格,則B1不能迭代更新。
2.不要在某一個方格具有輸入焦點(diǎn)時點(diǎn)擊A1,因?yàn)檫@樣會使B1迭代更新。
四、迭代運(yùn)算的自定義函數(shù)
以下的函數(shù)代碼就是迭代運(yùn)算的函數(shù)代碼之一。
Function MyDD(i As Single) As Single
i = i / 5
If i < 5 Then
MyDD = i
Else
MyDD = MyDD(i)
End If
End Function
懂得程序設(shè)計(jì)的人都明白,上述的迭代運(yùn)算函數(shù)代碼,其實(shí)就是遞歸代碼,換句話說,也是循環(huán)代碼。
新聞熱點(diǎn)
疑難解答
圖片精選