你是否曾經在撰寫 Google Sheets 公式時,尤其是用到 IF 判斷式,需要重複貼上同一段複雜的計算(例如 IMPORTXML 或 FILTER),導致整個公式變得超級冗長、難以閱讀和維護?
如果是這樣,那麼 LET 函數就是你的救星!
痛點:重複計算讓公式越來越長
在還沒有 LET 函數的年代,如果我們需要根據一個計算結果來做判斷,常常會這樣寫:
假設我們要抓取某個網頁資料 (例如用 IMPORTXML 抓取股價),如果抓不到資料 (可能是"-"符號),就顯示空白,否則顯示抓到的資料。公式可能長這樣:
=IF(IMPORTXML("網址", "XPath 查詢")="-", "", IMPORTXML("網址", "XPath 查詢"))
在這個例子中,IMPORTXML("網址", "XPath 查詢") 這一段 計算了兩次。如果這段計算本身就很複雜,或是你需要重複使用更多次,整個公式就會變得非常難以管理。
解決方案:LET 函數登場!
LET 函數允許你先為一個或多個計算結果「命名」,然後在最後的公式運算式中使用這些「名稱」來代替原本的計算。這樣做的好處是:
提升可讀性: 公式結構更清晰,更容易理解。
簡化公式: 避免重複撰寫相同的複雜計算。
提升效率: 相同的計算只需要執行一次,其結果會被儲存並重複使用,可能提升複雜公式的計算效能。
LET 函數語法
LET 函數的基本語法如下:
LET(名稱_1, 值運算式_1, [名稱_2, 值運算式_2, ...], 公式運算式)
名稱_1:你為第一個計算結果取的自訂名稱 (像變數名稱)。
值運算式_1:要進行計算並將結果指派給 名稱_1 的公式。
[名稱_2, 值運算式_2, ...]:(選用)你可以定義更多組的名稱和對應的值運算式。
公式運算式:最終要計算的公式,可以在這裡使用前面定義的 名稱_1, 名稱_2 等。
重要提示: 在公式編輯列中,你可以使用 ALT + Enter 來換行,讓 LET 函數的結構更易讀!
實際範例:簡化 IMPORTXML 判斷
讓我們用影片中提到的抓取 Yahoo 股市資料的例子 (00933B.TWO) 來看看 LET 如何應用:
原本的公式 (沒有 LET):
=IF(IMPORTXML("https://tw.stock.yahoo.com/quote/00933B.TWO", "//[@id='main-0-QuoteHeader-Proxy']/div/div[2]/div[1]/div/span[1]")="-", "", IMPORTXML("https://tw.stock.yahoo.com/quote/00933B.TWO", "//[@id='main-0-QuoteHeader-Proxy']/div/div[2]/div[1]/div/span[1]"))
(注意:Yahoo 網頁結構可能變動,此 XPath 不保證永久有效)
使用 LET 函數改寫:
=LET(
data, IMPORTXML("https://tw.stock.yahoo.com/quote/00933B.TWO", "//[@id='main-0-QuoteHeader-Proxy']/div/div[2]/div[1]/div/span[1]"),
IF(data="-", "", data)
)
說明:
LET( 開始函數。
data, IMPORTXML(...):我們將 IMPORTXML 抓取資料的結果命名為 data。IMPORTXML 這段計算只會執行一次。
, 分隔名稱/值組合與最終的公式。
IF(data="-", "", data):這是最終的判斷公式。我們直接使用前面定義的 data 這個名稱來進行比較和輸出,不再需要重複貼上 IMPORTXML。
) 結束函數。
是不是瞬間清爽簡潔多了?
命名規則注意事項
在使用 LET 函數定義名稱時,需要注意以下幾點(根據 Google 官方文件與影片提示):
不能是範圍參照: 名稱不能是像 A1, B2:C5 這樣的儲存格或範圍位址。
不能包含空格或特殊字元。
不得以數字開頭: 例如 9hello 是不合法的名稱。
名稱區分大小寫。 (雖然影片沒特別提,但這是 Google Sheets 的一般規則)
函數範圍內有效。
總結
LET 函數是 Google Sheets 中一個強大且能顯著改善公式撰寫體驗的功能。當你需要重複使用某個計算結果時,不妨試試用 LET 來為它命名,你會發現公式變得更短、更易讀、也更方便維護!
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。