Chapter 12. 函式 (七):自定義函式 › 12.1 LET
12.1 LET
本章示範檔案:Chapter 12. 函式 (七):自定義函式
本節將介紹 LET、已命名函式、LAMBDA 三個功能,主要是用來命名重複出現的變數與公式,增加變數與函式的可讀性。本章會用到許多前面介紹過的函式,因此若對前面幾章內容還不熟的同學可以在用到相關函式時回去複習其用法。
本節將介紹 LET、已命名函式、LAMBDA 三個功能,主要是用來命名重複出現的變數與公式,增加變數與函式的可讀性。本章會用到許多前面介紹過的函式,因此若對前面幾章內容還不熟的同學可以在用到相關函式時回去複習其用法。
LET 適用於需要將某一個項目在同一個公式中反覆使用時,函式說明如下:
語法 | LET (變數_1, 值運算式_1, [變數_2, 值運算式_2,...], 公式運算式) |
輸入 |
|
輸出 | 公式運算式 搭配所有 變數_n 的計算結果。 |
上述的函式說明可能有點抽象,以下使用兩個先前章節的範例作為說明:
- 同第 1.3 節的範例 C.& D. ,根據會員的生日輸出會員的年齡區間包括 30 歲以下、31~40 歲、41~50 歲、51~60 歲、61 歲以上,如下圖
公式
C2 的公式為 =ARRAYFORMULA(LET(年齡,DATEDIF(B2:B,TODAY(),"Y"),
IFS(年齡<=30,"30 歲以下",年齡<=40,"31~40 歲",年齡<=50,"41~50 歲",年齡<=60,"51~60 歲",年齡>60,"61 歲以上")))解說
- 在第 1.3 節中,先使用 =DATEDIF(B2,TODAY(),"Y") 在 J2 計算出每一個會員的年齡,再使用 =IFS(J2<=30,"30 歲以下",J2<=40,"31~40 歲",J2<=50,"41~50 歲",J2<=60,"51~60 歲",J2>60,"61 歲以上") 輸出年齡區間。
- 在此範例中,要直接輸出年齡區間,可以將前面 IFS 的 J2 全部 DATEDIF 的函式,但這樣公式會變得十分冗長,因此在此就可以使用 LET 將 DATEDIF(...) 設為 變數 年齡,並用於 公式運算式 中。
- 使用 ARRAYFORMULA 將 B2:B 一次使用 DATEDIF。
- 同第 9.3 節的範例 D. ptt看板範例 的人氣 (即 2607) 取代為 XXX
公式
=LET(人氣起始位置,FIND(" ",ptt看板範例)+1,人氣的長度,FIND(" ",ptt看板範例,人氣起始位置)-人氣起始位置,REPLACE(ptt看板範例,人氣起始位置,人氣的長度,"XXX"))
解說
- 在第 9.3 節中有說明到可以使用 REPLACE(ptt看板範例,人氣起始位置,人氣的長度,"XXX") 完成,在此可使用 LET 將其作為 公式運算式。
由以上範例可知,是否使用 LET 對於公式本身的輸出沒有影響,但若公式需要重複用到某個計算項目時,使用 LET 可以讓公式看起來更直觀易懂!