新函數LAMBDA的用法及遞歸計算實現
Excel出了很多新函數,其中LET、LAMBDA函數使得Excel更加靠近編程語言,我們上一篇簡單介紹了LET函數,這一篇我們來看看LAMBDA函數。

編程語言與Excel最大的區別在於,編程語言除了有豐富的函數之外,還可以根據需要自定函數,LAMBDA函數就給Excel帶來了自定義函數這個功能。
其實在Excel中自定義函數,可以通過VBA編寫,然後以加載項的方式,加載自定義函數,也可以通過名稱管理器的方式定義一個名稱,然後引用。
最常用的就是宏表函數EVALUATE,大家還有沒有印象:

相當於我們定義了一個內置參數的函數ev,把前面單元格中的字符串當作算式計算結果。
今天我們這個LAMBDA函數也有這種用法,我們先從最簡單的單元格中直接使用說起:
單元格中使用LAMBDA函數
LAMBDA函數有n個參數構成,看下面的例子:

我們定義了一個函數,參數是x,計算公式是SUM(x),然後我們在結尾輸入B2:B11來調用這個函數,得到運行結果。
在LET函數中使用LAMBDA函數
上一篇我們學習了LET函數,知道LET函數能夠定義名稱:

我們在LET中:
- 定義參數名稱 a : a=B2:B11
- 定義函數名稱b:b=LAMBDA(x,SUM(x))
- 然後在LET最後調用這個函數b(a)獲得計算結果。
在名稱管理器中使用LAMBDA函數
我們在名稱管理器中添加一個名稱ss:

然後我們在單元格中直接調用這個函數,ss(B2:B11)獲得計算結果。
以上就是LAMBDA函數的三種基本用法,下面我們再來看看:
LAMBDA函數的遞歸計算
遞歸計算,就是我們在函數中調用函數本身的這種計算:

我們用Power Query來做一個示例:

我們知道Power Query中遞歸調用使用的是@fx,我們定義的這個遞歸函數,是計算比x到n的和。

遞歸函數需要一個終止條件,否則會出錯,上面這個函數的終止條件就是n=1,大家可以看到函數調用的規律是,x+1,n-1,所以每調用一次,n值就會減掉1,一直減到1結束函數調用,遞歸函數的本體其實是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
上面就是這個遞歸函數的計算過程。
那麼我們在Excel中如果用LAMBDA函數來實現這個過程呢?
同樣的需要在名稱管理器中定義遞歸函數,然後調用這個函數計算:

公式的內容與Power Query中是一樣的,只不過語法有點區別。
這個遞歸公式只能在名稱管理中使用,LET函數中會顯示名稱錯誤:

好了,以上就是新函數LAMBDA的簡單用法。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/212012.html
微信掃一掃
支付寶掃一掃