LAMBDA 函數

套用到
Microsoft 365 Excel Mac 版 Microsoft 365 Excel Excel 2024 Mac 版 Excel 2024

使用 LAMBDA 函數來建立自訂、可重複使用的函數,並按易記名稱呼叫它們。 新函數可在整個工作表中使用,並如原生 Excel 函數般呼叫。

您可以為常用的公式建立函數,不需要複製並貼上此公式 (這很容易出錯),並有效地將您自己的函數新增至原生 Excel 函數程式庫。 此外,LAMBDA 函式不需要 VBA、巨集或 JavaScript,非程式設計師也能從中受益。

LAMBDA 函數的運作方式

語法

=LAMBDA([parameter1, parameter2, …,] calculation)

引數 描述
參數 您想要傳遞至函數的值,例如儲存格參照、字串或數字。 您最多只能輸入 253 個參數。 此引數為選用。
計算 您想要執行的公式,並做為函數的結果傳回。 它必須是最後一個引數,而且必須傳回結果。 此引數為必要。

註解

  • Lambda 名稱和參數遵循 Excel 的名稱語法規則,但有一個例外:參數名稱中不要使用句點 (.) 。 如需詳細資訊,請參閱公式中的名稱
  • 建立 LAMBDA 函數時請務必遵循最佳作法,就像您使用任何原生 Excel 公式一樣,例如傳遞正確的引數數目和類型、相符的左括弧和右括弧,以及將數字輸入為未格式化。 另外,當你使用 Evaluate 指令時,Excel 會立即回傳 LAMBDA 函式的結果,你無法直接進入。 如需詳細資訊,請參閱偵測公式中的錯誤

錯誤

  • 如果您輸入超過 253 個參數,Excel 會傳回 #VALUE! 錯誤。
  • 如果傳遞給 LAMBDA 函數的引數數目不正確,Excel 會傳回 #VALUE! 錯誤。
  • 如果您從 LAMBDA 函數本身呼叫某個函數,而呼叫是循環,Excel 可能傳回 #NUM! 錯誤 (如果有太多遞迴呼叫)。
  • 如果您在儲存格中建立 LAMBDA 函數,但未同時從儲存格內呼叫它,Excel 會傳回 #CALC! 錯誤。

建立 LAMBDA 函數

以下是要遵循的逐步程序,可協助確保您的 Lambda 如預期運作,且非常類似原生 Excel 函數的行為。

步驟 1:測試公式

確保你在 計算 參數中使用的公式是正確的。 這非常重要,因為當您建立 LAMBDA 函數,您想要確保公式正常運作,而且如果遇到錯誤或非預期的行為,則可以排除該公式。 欲了解更多資訊,請參閱 Excel 公式概述在 Excel 建立簡單公式。

步驟 2:在儲存格中建立 Lambda

最佳做法是在儲存格中建立和測試您的 LAMBDA 函數,以確保其正確運作,包括定義和傳遞參數。 若要避免 #CALC! 錯誤,請新增對 LAMBDA 函數的呼叫,以立即傳回結果:

=LAMBDA function ([parameter1, parameter2, ...],calculation) (function call)

下列範例會傳回值 2。

=LAMBDA(number, number + 1)(1)

步驟 3:將 Lambda 新增至名稱管理員

完成 LAMBDA 函數之後,請將其移至名稱管理員以進行最終定義。 如此一來,您可以為 LAMBDA 函數指定有意義的名稱、提供描述,然後讓它可從活頁簿的任何儲存格重複使用。 您也可以盡可能管理 LAMBDA 函數的任何名稱,例如字串常數、儲存格範圍或表格。

程序

  1. 執行下列其中一個動作:

    • 在 Windows 的 Excel 中,選擇 「公式名稱>管理器」。
    • 在 Mac 版 Excel 中,選擇 「公式>定義名稱」。
  2. 選取 [新增],然後在 [新增名稱] 對話方塊中輸入資訊:

    名稱: 輸入 LAMBDA 函數的名稱。
    範圍: 預設值為活頁簿。 也有個別試算表,唯獨網頁版的 Excel 除外。
    註解: 選用,但強烈建議設定。 最多可輸入 255 個字元。 簡單描述函數的用途,以及正確的引數數目和類型。
    在輸入公式並使用公式自動補全 (也稱為 Intellisense) 時, () 與計算參數一同顯示在「插入函式」對話框及工具提示中。
    參照對象為: 輸入 LAMBDA 函數。

    例如:

    在名稱管理器中定義 LAMBDA 函式

  3. 若要建立 LAMBDA 函數,請選取 [確定]

  4. 若要關閉 [名稱管理員] 對話方塊,請選取 [關閉]

如需詳細資訊,請參閱使用名稱管理員

範例

範例 1:將華氏轉換成攝氏

在名稱管理員中定義下列項目:

名稱: ToCelsius
範圍: 活頁簿
註解: 將華氏溫度轉換成攝氏
參照對象為: =LAMBDA(temp, (5/9) * (Temp-32))

請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 如有需要,您可以調整欄寬來查看所有資料。

資料
104
86
68
50
32
公式 結果
=TOCELSIUS(A2) 40
=TOCELSIUS(A3) 30
=TOCELSIUS(A4) 20
=TOCELSIUS(A5) 10
=TOCELSIUS(A6) 0

範例 2:尋找斜邊

在名稱管理員中定義下列項目:

名稱: Hypotenuse
範圍: 活頁簿
註解: 傳回直角三角形斜邊的長度
參照對象為: =LAMBDA(a, b, SQRT((a^2+b^2)))

請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 如有需要,您可以調整欄寬來查看所有資料。

資料
3 4
5 12
7 24
9 40
公式 結果
=HYPOTENUSE(A2,B2) 5
=HYPOTENUSE(A3,B3) 13
=HYPOTENUSE(A4,B4) 25
=HYPOTENUSE(A5,B5) 41

範例 3:計算字數

在名稱管理員中定義下列項目:

名稱: CountWords
範圍: 活頁簿
註解: 傳回文字字串中的字數
參照對象為: =LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), " ", "")) + 1)

請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 如有需要,您可以調整欄寬來查看所有資料。

資料
Something wicked this way comes.
I came, I saw, I conquered.
A quick brown fox jumped over the lazy dog.
Use the Force, Luke!
公式 結果
=COUNTWORDS(A2) 5
=COUNTWORDS(A3) 6
=COUNTWORDS(A4) 9
=COUNTWORDS(A5) 4

範例 4:尋找感恩節的日期

在名稱管理員中定義下列項目:

名稱: ThanksgivingDate
範圍: 活頁簿
註解: 傳回某一年美國感恩節的日期
參照對象為: =LAMBDA(年, TEXT(DATE(年, 11, CHOOSE(WEEKDAY(DATE(年, 11, 1)), 26, 25, 24, 23, 22, 28, 27)), "yyyy/mm/dd"))

請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 如有需要,您可以調整欄寬來查看所有資料。

資料
2020
2021
2022
2023
2024
公式 結果
=THANKSGIVINGDATE(A2) 11/26/2020
=THANKSGIVINGDATE(A3) 11/25/2021
=THANKSGIVINGDATE(A4) 11/24/2022
=THANKSGIVINGDATE(A5) 11/23/2023
=THANKSGIVINGDATE(A6) 11/28/2024

需要更多協助嗎?

你隨時可以向 Excel 技術社群 的專家詢問,或在 社群中獲得支援。