新函數(shù)LAMBDA的用法及遞歸計(jì)算實(shí)現(xiàn) Excel出了很多新函數(shù),其中LET,、LAMBDA函數(shù)使得Excel更加靠近編程語(yǔ)言,,我們上一篇簡(jiǎn)單介紹了LET函數(shù),,這一篇我們來(lái)看看LAMBDA函數(shù),。 編程語(yǔ)言與Excel最大的區(qū)別在于,編程語(yǔ)言除了有豐富的函數(shù)之外,,還可以根據(jù)需要自定函數(shù),,LAMBDA函數(shù)就給Excel帶來(lái)了自定義函數(shù)這個(gè)功能。 其實(shí)在Excel中自定義函數(shù),,可以通過(guò)VBA編寫,,然后以加載項(xiàng)的方式,加載自定義函數(shù),,也可以通過(guò)名稱管理器的方式定義一個(gè)名稱,,然后引用。 最常用的就是宏表函數(shù)EVALUATE,,大家還有沒(méi)有印象: 相當(dāng)于我們定義了一個(gè)內(nèi)置參數(shù)的函數(shù)ev,,把前面單元格中的字符串當(dāng)作算式計(jì)算結(jié)果。 今天我們這個(gè)LAMBDA函數(shù)也有這種用法,,我們先從最簡(jiǎn)單的單元格中直接使用說(shuō)起: 單元格中使用LAMBDA函數(shù)LAMBDA函數(shù)有n個(gè)參數(shù)構(gòu)成,,看下面的例子: 我們定義了一個(gè)函數(shù),,參數(shù)是x,計(jì)算公式是SUM(x),,然后我們?cè)诮Y(jié)尾輸入B2:B11來(lái)調(diào)用這個(gè)函數(shù),,得到運(yùn)行結(jié)果。 在LET函數(shù)中使用LAMBDA函數(shù)上一篇我們學(xué)習(xí)了LET函數(shù),,知道LET函數(shù)能夠定義名稱: 我們?cè)贚ET中:
在名稱管理器中使用LAMBDA函數(shù)我們?cè)诿Q管理器中添加一個(gè)名稱ss: 然后我們?cè)趩卧裰兄苯诱{(diào)用這個(gè)函數(shù),ss(B2:B11)獲得計(jì)算結(jié)果,。 以上就是LAMBDA函數(shù)的三種基本用法,,下面我們?cè)賮?lái)看看: LAMBDA函數(shù)的遞歸計(jì)算遞歸計(jì)算,就是我們?cè)诤瘮?shù)中調(diào)用函數(shù)本身的這種計(jì)算: 我們用Power Query來(lái)做一個(gè)示例: 我們知道Power Query中遞歸調(diào)用使用的是@fx,,我們定義的這個(gè)遞歸函數(shù),,是計(jì)算比x到n的和。 遞歸函數(shù)需要一個(gè)終止條件,,否則會(huì)出錯(cuò),,上面這個(gè)函數(shù)的終止條件就是n=1,大家可以看到函數(shù)調(diào)用的規(guī)律是,,x+1,n-1,,所以每調(diào)用一次,n值就會(huì)減掉1,,一直減到1結(jié)束函數(shù)調(diào)用,,遞歸函數(shù)的本體其實(shí)是else后面的部分,就是x+(x+1) n=10,1+2 n=9,1+2+3 n=8,1+2+3+4 . . . . . . n=1,1+2+3+…+10 上面就是這個(gè)遞歸函數(shù)的計(jì)算過(guò)程,。 那么我們?cè)贓xcel中如果用LAMBDA函數(shù)來(lái)實(shí)現(xiàn)這個(gè)過(guò)程呢,? 同樣的需要在名稱管理器中定義遞歸函數(shù),然后調(diào)用這個(gè)函數(shù)計(jì)算: 公式的內(nèi)容與Power Query中是一樣的,,只不過(guò)語(yǔ)法有點(diǎn)區(qū)別,。 這個(gè)遞歸公式只能在名稱管理中使用,LET函數(shù)中會(huì)顯示名稱錯(cuò)誤: 好了,,以上就是新函數(shù)LAMBDA的簡(jiǎn)單用法,。 |
|