LAMBDA 函數是 Excel 中用來建立「自訂公式邏輯」的進階工具。它能將任意公式包裝成可重複使用的函數,並支援命名、參數化與動態陣列運算,適合用在報表模組化、錯誤防呆、公式簡化等場景。本文將說明 LAMBDA 函數的語法、五個基礎範例與五個進階範例,並補充注意事項與延伸技巧,幫助你打造可重複、可維護的公式架構。
一、LAMBDA 函數語法與用途:建立自訂公式的核心工具
語法:
=LAMBDA(參數1, 參數2, ..., 運算公式)
- 可定義任意數量的參數
- 最後一個項目為公式本體,使用前面定義的參數
- 可搭配
Name Manager
命名為自訂函數,重複使用
二、基礎範例(適合初學者快速掌握用途)
範例一:建立簡單加總函數
=LAMBDA(x, y, x + y)(3, 5)
回傳 8,表示 3 + 5。
範例二:建立條件判斷函數
=LAMBDA(score, IF(score>=60, "及格", "不及格"))(75)
回傳「及格」。
範例三:建立平均計算函數
=LAMBDA(a, b, (a + b)/2)(10, 20)
回傳 15。
範例四:建立文字組合函數
=LAMBDA(first, last, last & ", " & first)("好", "你")
回傳「你, 好」。
範例五:建立命名函數(需透過名稱管理員)
=LAMBDA(x, x^2)
命名為 Square
後可使用 =Square(4)
回傳 16。
三、進階範例(適合報表設計與模組化應用)
範例六:搭配 BYROW
逐列計算加總
=BYROW(A1:D5, LAMBDA(row, SUM(row)))
回傳每列的加總結果。
範例七:建立錯誤防呆邏輯封裝
=LAMBDA(x, IFERROR(1/x, "錯誤"))(0)
回傳「錯誤」,避免除以零錯誤。
範例八:建立多條件分類函數
=LAMBDA(score, IF(score>=90, "優", IF(score>=75, "良", IF(score>=60, "可", "不及格"))))(82)
回傳「良」。
範例九:建立動態陣列處理函數
=LAMBDA(arr, TEXTJOIN(", ", TRUE, arr))({"A","B","C"})
回傳「A, B, C」。
範例十:結合 LET 儲存中間變數
=LAMBDA(x, LET(square, x^2, square + 10))(3)
回傳 19,表示 3² + 10。
四、常見問題解答(FAQ)
Q1:LAMBDA 和 LET 有什麼差別? LAMBDA 用來建立自訂函數,LET 用來儲存中間變數並提升公式效能。兩者可搭配使用。
Q2:LAMBDA 可以命名成自訂函數嗎? 可以,需透過「名稱管理員」將 LAMBDA 函數命名,之後可像內建函數一樣使用。
Q3:LAMBDA 可以搭配哪些函數使用? 可搭配 BYROW、BYCOL、MAP、SCAN、REDUCE 等動態陣列函數,也可結合 IF、IFERROR、LET 等邏輯與效能函數。
Q4:LAMBDA 可以處理陣列嗎? 可以,只要搭配支援陣列的函數(如 TEXTJOIN、FILTER),即可處理多筆資料。
Q5:LAMBDA 有支援多層嵌套嗎? 有,可以在 LAMBDA 中嵌套其他 LAMBDA 或 LET 結構,建立複雜邏輯。
五、注意事項與錯誤排除
- LAMBDA 需搭配 Excel 365,舊版不支援
- 若未立即執行(未加括號與參數),公式不會回傳結果
- 命名函數需透過「名稱管理員」建立,否則無法重複使用
- 可搭配 LET 儲存中間變數,提升可讀性與效能
- 若參數數量不符,會回傳 #VALUE! 錯誤
六、延伸技巧與相關函數
- LET 函數:儲存中間變數,提升公式效能
- MAP 函數:逐項運算,適合搭配 LAMBDA
- BYROW / BYCOL 函數:逐列或逐欄運算
- IFERROR / IFNA 函數:錯誤防呆與預設值處理
- 名稱管理員:建立可重複使用的自訂函數
七、結語與延伸閱讀推薦
LAMBDA 函數是 Excel 中最具彈性的公式封裝工具,適合用在報表模組化、公式簡化、動態陣列處理等情境。學會 LAMBDA 後,你可以進一步探索:
- [LET 函數教學:提升公式效能與可讀性的好幫手]
- [MAP 函數教學:逐項處理與格式轉換的進階方法]
- [BYROW 函數教學:逐列運算的動態陣列技巧]