本篇來探討 Excel 2021 版之後的 LET 函數。
LET 語法:LET(name,value,calculation) = LET(變數名稱,變數內容,計算式)
【例】公式:=LET(x,2,y,3,x+y)
設定變數x=2、變數y=3、運算:x+y=2+3=5
本例變數x、變數y的內容為定數,是不會變的。
【例】公式=LET(x,A12,y,B12,(x^2+y^2)^0.5)
設定變數x=儲存格A12、變數y=儲存格B12、運算:(x^2+y^2)^0.5=5
本例變數x、變數y內容依儲存格內容而定,是可變的。
【傳統公式】
儲存格H5:=INDEX(B4:E13,MATCH(D15,人員,0),MATCH(B15,B3:E3,0))
【使用LET函數】
儲存格H5:=LET(DATA,B4:E13,x,MATCH(D15,人員,0),y,MATCH(B15,B3:E3,0),INDEX(DATA,x,y))
(1) 變數x = MATCH(D15,人員,0),傳回公式運算結果至x。
(2) 變數y = MATCH(B15,B3:E3,0),傳回公式運算結果至y。
(3) 變數DATA = B4:E13,設定變數內容為一個儲存格範圍。
(4) 運算:INDEX(DATA,x,y),
LET 函數讓公式更容易閱讀。
【使用名稱定義】
(1) 定義名稱x = MATCH('C'!$D$15,'C'!$A$4:$A$13,0)
(2) 定義名稱y = MATCH('C'!$B$15,'C'!$B$3:$E$3)
(3) 定義名稱DATA ='C'!$B$4:$E$13
(3) 儲存格G4:=INDEX(DATA,x,y)
和使用 LET 函數有異曲同工之處!
【傳統公式】
儲存格G4:=IFS(RANK(F4,$F$4:$F$13)<4,"優良",RANK(F4,$F$4:$F$13)<7,"尚可",RANK(F4,$F$4:$F$13)<11,"加油")
在這個例子,公式裡的RANK(F4,$F$4:$F$13),被運算了三次,除了公式變長而不易閱讀之外,也增加了運算的時間,降低了處理效能。
【使用LET函數】
儲存格G4:=LET(x,RANK(F4,$F$4:$F$13),IFS(x<4,"優良",x<7,"尚可",x<11,"加油"))
使用 LET 函數時,RANK(F4,$F$4:$F$13)只被運算一次,可以提高處理效能,公式縮短了,也較易於閱讀。
【使用輔助欄位】
(1) 輔助欄位公式,儲存格A5:=IF(LEN(C5)<>0,A4+1,A4)
(2) 進行編號公式,儲存格D5:=IF(A5<>A4,A5,"")
【不使用輔助欄位】
儲存格A5:=LET(x,IF(LEN(C5)<>0,A4+1,A4),IF(x<>A4,A5,""))
在 LET 函數裡,變數x的功能和輔助欄位相同。
【參考資料】
留言列表