新函數(shù)LAMBDA的用法(上)——不用VBA做自定義函數(shù)
?
作者:小窩來源:部落窩教育發(fā)布時(shí)間:2024-01-11 10:38:00點(diǎn)擊:1142
介紹新函數(shù)LAMBDA的基本用法,以及如何自定義函數(shù)。有了LAMBDA,人人都可以自定義函數(shù),而不需要用VBA。
新函數(shù)LAMBDA被譽(yù)為Excel函數(shù)劃時(shí)代的突破,有一句不太準(zhǔn)確的描述“LAMBDA實(shí)現(xiàn)了用公式編程”!
它最被贊譽(yù)的兩點(diǎn):
◎用公式完成可重復(fù)使用的自定義函數(shù),不需要用VBA,不需要保存為支持宏的文件;
◎用公式完成遞歸計(jì)算,而以往需要用VBA/JavaScript代碼才能進(jìn)行。
1.作用與語(yǔ)法
LAMBDA函數(shù)用于創(chuàng)建可在當(dāng)前文件中重復(fù)使用的自定義函數(shù)。
=LAMBDA([參數(shù)1,參數(shù)2…],計(jì)算式)
參數(shù)1、參數(shù)2等,類似數(shù)學(xué)方程中設(shè)置的未知數(shù)X、Y;
計(jì)算式就是含參數(shù)的計(jì)算表達(dá)式。
LAMBDA函數(shù)的使用比較特殊,主要通過定義名稱使用,也可以在單元格中編輯使用。
2.基本用法
1)在單元格中的臨時(shí)用法
相比其他函數(shù),LAMBDA在單元格或編輯欄中使用須要加一個(gè)尾巴——括起來的參數(shù)值或者引用
=LAMBDA(……)(參數(shù)值或引用)
譬如將華氏度轉(zhuǎn)成攝氏度。
從物理上我們知道攝氏度=(華氏度-32)*5/9。因此,我們可以設(shè)置華氏度溫度為X,保留一位小數(shù),那攝氏度就=ROUND(X-32)*5/9,1)。
在B3單元格中輸入公式=LAMBDA(X,ROUND((X-32)*5/9,1))(A3)并下拉填充即可得到攝氏度數(shù)據(jù)。
說明:
公式尾巴(A3)必須有!這個(gè)尾巴給出參數(shù)X的具體值或者引用。如果沒有參數(shù)值或引用的尾巴,會(huì)出現(xiàn)#CALC!錯(cuò)誤。
LAMBDA中的參數(shù)最多可以定義253個(gè)。下面求圓環(huán)面積用到兩個(gè)參數(shù)。
輸入公式“=LAMBDA(X,Y,ROUND(PI()*(X^2-Y^2),2))(A12,B12)”并下拉填充。
說明:
PI()指的是圓周率Π。
尾巴(A12,B12),A12是參數(shù)X引用單元格,B12是參數(shù)Y引用單元格,兩者之間用逗號(hào)隔開。
LAMBDA在單元格中的運(yùn)用不但體現(xiàn)不出它的優(yōu)勢(shì)“可重復(fù)使用的自定義函數(shù)”“遞歸計(jì)算”,而且比普通函數(shù)使用還多了一個(gè)繁瑣的尾巴。
因此,這種用法只是用于自定義函數(shù)前的測(cè)試,測(cè)試公式是否正確。
2)在定義名稱中使用
下方提取單元格中所有數(shù)字,數(shù)字之間用逗號(hào)分開。
平常,采用兼顧低版本的如下函數(shù)公式可以完成提?。?/span>
=SUBSTITUTE(TRIM(CONCAT(IF(IFERROR(FIND(MID(A3,ROW($2:$51),1),"-0.123456789"),0),MID(A3,ROW($2:$51),1)," ")))," ",",")
該公式難以理解,并且偏長(zhǎng),如果有多個(gè)表需要使用它,即便復(fù)制粘貼,也需要來回修改。
我們可以用LAMBDA函數(shù)來生成一個(gè)自定義函數(shù)用于提取。
復(fù)制前面的公式,然后單擊公式選項(xiàng)卡中“定義名稱”。設(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)," ")))," ",","))”
確定后,得到一個(gè)名為“tiqushuzi”的自定義函數(shù)。
該自定義函數(shù)既容易理解(新手都能理解),又方便在多表中重復(fù)使用——這就是LAMBDA帶來的巨大優(yōu)勢(shì)之一。
3.典型應(yīng)用
1)將復(fù)雜的公式定義為自定義函數(shù)方便在多表中重復(fù)使用
譬如財(cái)務(wù)做賬經(jīng)常需要將金額轉(zhuǎn)成大寫。
如果按平常寫公式,很長(zhǎng)的:
=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]")&"分")
每次輸入這么長(zhǎng)的公式,很要命呢。
如果用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ù)怎么辦呢?很簡(jiǎn)單,從含有自定義函數(shù)的文件中復(fù)制一個(gè)工作表(sheet),空的工作表也行,到其他文件即可。
2)遞歸運(yùn)算
如果在定義函數(shù)的時(shí)候,LAMBDA公式中調(diào)用函數(shù)本身,則可以實(shí)現(xiàn)建立在循環(huán)運(yùn)算上的遞歸運(yùn)算。
具體的遞歸運(yùn)算我們?cè)谙缕恼轮薪榻B,此處只是讓大家感受一下。
譬如提取字符串中所有阿拉伯?dāng)?shù)字(忽略小數(shù)點(diǎn)、負(fù)號(hào)等)可自定以函數(shù)“qushu”完成。
在定義名稱中輸入名稱“qushu”,公式LAMBDA(x,IF(x="","",IFERROR(LEFT(x,1)*1,"")&qushu(RIGHT(x,LEN(x)-1))))
然后在表格中使用“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ù)那樣使用,并且不需要保存為支持宏的格式,方便分享使用。如果大家有興趣和時(shí)間,可以將一些與自己工作密切相關(guān)的復(fù)雜公式都做成自定義函數(shù)保存到某個(gè)文件中,將大大提高工作效率。
自定義函數(shù)不再是VBA高手才能做的事了!
本文配套的練習(xí)課件請(qǐng)?zhí)砑涌头⑿?span>buluowojiaoyu索取。
做Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇!
掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)Excel:
相關(guān)推薦:
新函數(shù)VALUETOTEXT和ARRAYTOTEXT用法
版權(quán)申明:
本文作者小窩;部落窩教育享有稿件專有使用權(quán)。若需轉(zhuǎn)載請(qǐng)聯(lián)系部落窩教育。
最熱教程
- 像綠皮火車一樣長(zhǎng)像珠穆拉瑪峰一樣高的Excel表怎么操作才方便?
- Power Query實(shí)戰(zhàn):按指定次數(shù)遞增數(shù)據(jù)
- 2019年全網(wǎng)最全—excel提取身份證信息合集!(建議收藏)-下篇
- 明明沒有重復(fù),Excel卻判定數(shù)據(jù)重復(fù),這是怎么回事?
- 文本格式的求和,及求和中最容易出現(xiàn)的問題解疑
- 致命缺陷:不懂一維表!
- 函數(shù)組合思維,你有嗎?
- 學(xué)會(huì)這2個(gè)公式,整理考勤數(shù)據(jù)只要一分鐘
- 就算被說是拍馬屁也成,今天你應(yīng)該這樣發(fā)Excel報(bào)表……
- 如何計(jì)算Excel單元格中的算式,四種求和方法請(qǐng)收好!
最新教程
- 多功能銷售日歷模板制作
- 用正則函數(shù)快速拆分單元格中的同類數(shù)據(jù)
- 用免費(fèi)AI將圖片批量轉(zhuǎn)表格
- 先入先出出入庫(kù)模板中出庫(kù)批次的自動(dòng)匹配
- 用SUBSTITUTE替換法為產(chǎn)品找到最匹配的類別
- SHEETSNAME,一鍵獲得所有工作表名稱完成目錄制作
- 延遲退休落地,快速查詢你上幾年才退休!
- 快速將PDF電子發(fā)票數(shù)據(jù)提取到發(fā)票明細(xì)登記表的方法
- 提取、查找、替換數(shù)據(jù)的王者——REGEXP正則函數(shù)
- Excel表10萬行數(shù)據(jù),篩選卡頓怎么辦?