WPS又雙叒叕搞事了。
2023年12月更新的一批新函數(shù)都還沒消化完,一個月之后的WPS測試版本中又不管不顧地投喂兩個重磅函數(shù):LAMBDA和LET.
特別是其中的LAMBDA,怎么形容呢?喪心病狂吧。
LAMBDA支持用戶自定義函數(shù),并且可以在函數(shù)中嵌套重復(fù)調(diào)用自己,也就是常說的遞歸。對于有計算機或編程背景的人來說LAMBDA和遞歸調(diào)用都是再熟悉不過的概念,但對于WPS的普通用戶絕對是一片新大陸。
注意,這里說的用戶自定義函數(shù)不是用計算機語言來編寫,而是在WPS中定義參數(shù)和計算式,過程中可以調(diào)用任何的函數(shù)。也就是說可以用若干個函數(shù)來組成一個新的函數(shù)來達到用戶想要的功能。
接下來嘗試用LAMBDA定義一個函數(shù)來計算梯形面積。
梯形面積計算方法:(上底+下底)×高÷2
常規(guī)方式
直接將計算方式轉(zhuǎn)換為簡單的公式即可:
=(A2+B2)*C2/2
常規(guī)方式計算梯形面積
LAMBDA計算
用LAMBDA設(shè)計公式:
=LAMBDA(上底,下底,高,(上底+下底)*高/2)(A2,B2,C2)
LAMBDA計算梯形面積
分成三部分來解讀這個陌生公式:
1.LAMBDA的第1,2,3個參數(shù)用于定義三個新的參數(shù),分別命名為上底,下底,高。
參數(shù)名稱可以根據(jù)個人喜好自行定義,飛機,輪船,Andy……都可以。
2.LAMBDA的第4個參數(shù)定義運算式,用于實現(xiàn)用戶想要實現(xiàn)何種運算。這里可以調(diào)用WPS的函數(shù),例如其中的【(上底+下底)】可以用【SUM(上底+下底)】實現(xiàn)。
3.(A2,B2,C2)這部分是接在LAMBDA后面的,并不是LAMBDA的參數(shù)。這三個引用值會傳遞給第一部分中的三個參數(shù)。
LAMBDA公式圖解
LMABDA定義函數(shù)
第一步:復(fù)制上面的LAMBDA公式。
=LAMBDA(上底,下底,高,(上底+下底)*高/2)
注意,不要第三部分,這里只是定義函數(shù),不需要對其傳遞實際的參數(shù)值。
第二步:【公式】選項卡下點擊【定義名稱】。
第三步:編輯名稱。
【名稱】中輸入的字符將被作為新定義函數(shù)的函數(shù)名,例如此處區(qū)梯形的前三個字母【Tra】作為函數(shù)名。
【引用位置】中粘貼此前復(fù)制的公式。
通過【名稱】自定義函數(shù)
函數(shù)定義好后就可以直接使用了。在單元格中輸入函數(shù)時同樣享有系統(tǒng)提示的待遇,提示需要輸入三個參數(shù)。
引用自定義函數(shù)
輸入?yún)?shù)后也和正常函數(shù)一樣返回結(jié)果:
=Tra(A2,B2,C2)
引用自定義函數(shù)計算梯形面積
函數(shù)定義函數(shù)
此前說到可以用函數(shù)定義函數(shù),而Tar中的核心計算式并沒有用到任何函數(shù),這只是因為邏輯簡單,沒有必要引用其他函數(shù)而已。
用以下公式來重新定義Tra:
=LAMBDA(測量數(shù)據(jù),SUM(CHOOSECOLS(測量數(shù)據(jù),1,2))*CHOOSECOLS(測量數(shù)據(jù),3)/2)
與之前的定義對比,參數(shù)從3個減少到1個,運算式中嵌套了SUM和CHOOSECOLS函數(shù);
引用函數(shù)Tra計算梯形面積:
=Tra(A2:C2)
引用的參數(shù)是一個數(shù)據(jù)區(qū)域,包含了需要參與計算的上底,下底和高。輸入函數(shù)后框選三個連續(xù)單元格作為參數(shù)即可,操作上比之前輸入三個參數(shù)更加簡單快捷。
SUM和CHOOSECOLS自定義函數(shù)Tra,用于計算梯形面積