二維碼 購物車
部落窩在線教育歡迎您!

新函數(shù)LAMBDA的用法(上)——不用VBA做自定義函數(shù)

?

作者:小窩來源:部落窩教育發(fā)布時間:2024-01-11 10:38:00點(diǎn)擊:950

分享到:
0
收藏    收藏人氣:0人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。
編按:

介紹新函數(shù)LAMBDA的基本用法,以及如何自定義函數(shù)。有了LAMBDA,人人都可以自定義函數(shù),而不需要用VBA。

 

新函數(shù)LAMBDA被譽(yù)為Excel函數(shù)劃時代的突破,有一句不太準(zhǔn)確的描述“LAMBDA實現(xiàn)了用公式編程”!

它最被贊譽(yù)的兩點(diǎn):

◎用公式完成可重復(fù)使用的自定義函數(shù),不需要用VBA,不需要保存為支持宏的文件;

◎用公式完成遞歸計算,而以往需要用VBA/JavaScript代碼才能進(jìn)行。

 

1.作用與語法

LAMBDA函數(shù)用于創(chuàng)建可在當(dāng)前文件中重復(fù)使用的自定義函數(shù)。

=LAMBDA([參數(shù)1,參數(shù)2],計算式)

參數(shù)1、參數(shù)2等,類似數(shù)學(xué)方程中設(shè)置的未知數(shù)X、Y;

計算式就是含參數(shù)的計算表達(dá)式。

LAMBDA函數(shù)的使用比較特殊,主要通過定義名稱使用,也可以在單元格中編輯使用。

2.基本用法

1)在單元格中的臨時用法

相比其他函數(shù),LAMBDA在單元格或編輯欄中使用須要加一個尾巴——括起來的參數(shù)值或者引用

=LAMBDA(……)(參數(shù)值或引用)

譬如將華氏度轉(zhuǎn)成攝氏度。

 

圖形用戶界面, 應(yīng)用程序
描述已自動生成

 

從物理上我們知道攝氏度=(華氏度-32*5/9。因此,我們可以設(shè)置華氏度溫度為X,保留一位小數(shù),那攝氏度就=ROUNDX-32*5/9,1)

B3單元格中輸入公式=LAMBDA(X,ROUND((X-32)*5/9,1))(A3)并下拉填充即可得到攝氏度數(shù)據(jù)。

 

 

說明:

公式尾巴(A3)必須有!這個尾巴給出參數(shù)X的具體值或者引用。如果沒有參數(shù)值或引用的尾巴,會出現(xiàn)#CALC!錯誤。

 

圖形用戶界面, 文本, 表格
中度可信度描述已自動生成

 

LAMBDA中的參數(shù)最多可以定義253個。下面求圓環(huán)面積用到兩個參數(shù)。

輸入公式“=LAMBDA(X,Y,ROUND(PI()*(X^2-Y^2),2))(A12,B12)”并下拉填充。

 

文本, 表格
描述已自動生成

 

說明:

PI()指的是圓周率Π。

尾巴(A12,B12),A12是參數(shù)X引用單元格,B12是參數(shù)Y引用單元格,兩者之間用逗號隔開。

 

LAMBDA在單元格中的運(yùn)用不但體現(xiàn)不出它的優(yōu)勢“可重復(fù)使用的自定義函數(shù)”“遞歸計算”,而且比普通函數(shù)使用還多了一個繁瑣的尾巴。

因此,這種用法只是用于自定義函數(shù)前的測試,測試公式是否正確。

 

2)在定義名稱中使用

下方提取單元格中所有數(shù)字,數(shù)字之間用逗號分開。

 

表格
描述已自動生成

 

平常,采用兼顧低版本的如下函數(shù)公式可以完成提?。?/span>

=SUBSTITUTE(TRIM(CONCAT(IF(IFERROR(FIND(MID(A3,ROW($2:$51),1),"-0.123456789"),0),MID(A3,ROW($2:$51),1)," ")))," ",",")

 

該公式難以理解,并且偏長,如果有多個表需要使用它,即便復(fù)制粘貼,也需要來回修改。

 

表格
描述已自動生成

 

我們可以用LAMBDA函數(shù)來生成一個自定義函數(shù)用于提取。

復(fù)制前面的公式,然后單擊公式選項卡中“定義名稱”。設(shè)置名稱為“tiqushuzi” (自定義函數(shù)的名稱最好能傳達(dá)出其作用,方便使用),公式為“=LAMBDA(字符串,SUBSTITUTE(TRIM(CONCAT(IF(IFERROR(FIND(MID(字符串,ROW(Sheet1!$2:$51),

1),"-0.123456789"),0),MID(字符串,ROW(Sheet1!$2:$51),1)," ")))," ",","))

 

圖形用戶界面, 表格
描述已自動生成

 

確定后,得到一個名為“tiqushuzi”的自定義函數(shù)。

該自定義函數(shù)既容易理解(新手都能理解),又方便在多表中重復(fù)使用——這就是LAMBDA帶來的巨大優(yōu)勢之一。

 

表格
描述已自動生成

 

3.典型應(yīng)用

1)將復(fù)雜的公式定義為自定義函數(shù)方便在多表中重復(fù)使用

譬如財務(wù)做賬經(jīng)常需要將金額轉(zhuǎn)成大寫。

如果按平常寫公式,很長的:

=TEXT(INT(A17),"[dbnum2]")&""&IF(INT(A17*10)-INT(A17)*10=0,"",TEXT(INT(A17*10)-INT(A17)*10,"[dbnum2]")&"")&IF(INT(A17*100)-INT(A17*10)*10=0,"",TEXT(INT(A17*100)-INT(A17*10)*10,"[dbnum2]")&"")

 

文本, 表格
描述已自動生成

 

每次輸入這么長的公式,很要命呢。

如果用LAMBDA定位為自定義“DAXIE”函數(shù),則使用方便。

 

文本
低可信度描述已自動生成

 

說明:

名稱中的自定義公式=LAMBDA(金額,TEXT(INT(金額),"[dbnum2]")&""&IF(INT(金額*10)-INT(金額)*10=0,"",TEXT(INT(金額*10)-INT(金額)*10,"[dbnum2]")&"")&IF(INT(金額*100)-INT(金額*10)*10=0,"",TEXT(INT(金額*100)-INT(金額*10)*10,"[dbnum2]")&""))

 

重要提示和技巧:

自定義的函數(shù)只能在當(dāng)前文件中使用!

如果其他文件需要使用已定義的自定義函數(shù)怎么辦呢?很簡單,從含有自定義函數(shù)的文件中復(fù)制一個工作表(sheet),空的工作表也行,到其他文件即可。

 

圖形用戶界面, 表格
描述已自動生成

 

 

2)遞歸運(yùn)算

如果在定義函數(shù)的時候,LAMBDA公式中調(diào)用函數(shù)本身,則可以實現(xiàn)建立在循環(huán)運(yùn)算上的遞歸運(yùn)算。

具體的遞歸運(yùn)算我們在下篇文章中介紹,此處只是讓大家感受一下。

譬如提取字符串中所有阿拉伯?dāng)?shù)字(忽略小數(shù)點(diǎn)、負(fù)號等)可自定以函數(shù)“qushu”完成。

在定義名稱中輸入名稱“qushu”,公式LAMBDA(x,IF(x="","",IFERROR(LEFT(x,1)*1,"")&qushu(RIGHT(x,LEN(x)-1))))

 

圖形用戶界面, 文本, 應(yīng)用程序, Word
描述已自動生成

 

然后在表格中使用“qushu”自定義函數(shù)即可。

 

表格
描述已自動生成

 

說明:

公式中IF函數(shù)的第1和第2參數(shù)部分“IF(x="","",”用于設(shè)置終止條件。遞歸運(yùn)算中必須有循環(huán)終止條件。

IF函數(shù)的第3參數(shù)部分“IFERROR(LEFT(x,1)*1,"")&qushu(RIGHT(x,LEN(x)-1)))”進(jìn)行循環(huán)取數(shù)。

 

4.總結(jié)

本篇介紹了LAMBDA函數(shù)的兩種基本用法以及如何用它自定義函數(shù)。

LAMBDA自定義函數(shù)可以在當(dāng)前文件中像普通函數(shù)那樣使用,并且不需要保存為支持宏的格式,方便分享使用。如果大家有興趣和時間,可以將一些與自己工作密切相關(guān)的復(fù)雜公式都做成自定義函數(shù)保存到某個文件中,將大大提高工作效率。

自定義函數(shù)不再是VBA高手才能做的事了!

 

本文配套的練習(xí)課件請?zhí)砑涌头⑿?span>buluowojiaoyu索取。

Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇

掃下方二維碼關(guān)注公眾號,可隨時隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

新函數(shù)VALUETOTEXT和ARRAYTOTEXT用法

新函數(shù)XMATCH用法

LET函數(shù),簡化公式的魔法

帶進(jìn)度預(yù)警的甘特圖制作

版權(quán)申明:

本文作者小窩;部落窩教育享有稿件專有使用權(quán)。若需轉(zhuǎn)載請聯(lián)系部落窩教育。