使用 LAMBDA 函數來建立自訂、可重複使用的函數,並按易記名稱呼叫它們。 新函數可在整個工作表中使用,並如原生 Excel 函數般呼叫。
您可以為常用的公式建立函數,不需要複製並貼上此公式 (這很容易出錯),並有效地將您自己的函數新增至原生 Excel 函數程式庫。 此外,LAMBDA 函數不需要 VBA、巨集或 JavaScript,因此非程式設計人員也可以因使用它而獲益。
語法
=LAMBDA([parameter1, parameter2, …,] calculation)
引數 |
描述 |
---|---|
參數 |
您想要傳遞至函數的值,例如儲存格參照、字串或數字。 您最多只能輸入 253 個參數。 此引數為選用。 |
計算 |
您想要執行的公式,並做為函數的結果傳回。 它必須是最後一個引數,而且必須傳回結果。 此引數為必要。 |
註解
錯誤
-
如果您輸入超過 253 個參數,Excel 會傳回 #VALUE! 錯誤。
-
如果傳遞給 LAMBDA 函數的引數數目不正確,Excel 會傳回 #VALUE! 錯誤。
-
如果您從 LAMBDA 函數本身呼叫某個函數,而呼叫是循環,Excel 可能傳回 #NUM! 錯誤 (如果有太多遞迴呼叫)。
-
如果您在儲存格中建立 LAMBDA 函數,但未同時從儲存格內呼叫它,Excel 會傳回 #CALC! 錯誤。
建立 LAMBDA 函數
以下是要遵循的逐步程序,可協助確保您的 Lambda 如預期運作,且非常類似原生 Excel 函數的行為。
確定您用於計算引數中的公式可正確執行。 這非常重要,因為當您建立 LAMBDA 函數,您想要確保公式正常運作,而且如果遇到錯誤或非預期的行為,則可以排除該公式。 如需詳細資訊,請參閱 Excel 中的公式概觀和在 Excel 中建立簡單公式。
最佳做法是在儲存格中建立和測試您的 LAMBDA 函數,以確保其正確運作,包括定義和傳遞參數。 若要避免 #CALC! 錯誤,請新增對 LAMBDA 函數的呼叫,以立即傳回結果:
=LAMBDA function ([parameter1, parameter2, ...],calculation) (function call)
下列範例會傳回值 2。=LAMBDA(number, number + 1)(1)
完成 LAMBDA 函數之後,請將其移至名稱管理員以進行最終定義。 如此一來,您可以為 LAMBDA 函數指定有意義的名稱、提供描述,然後讓它可從活頁簿的任何儲存格重複使用。 您也可以盡可能管理 LAMBDA 函數的任何名稱,例如字串常數、儲存格範圍或表格。
程序
-
執行下列其中一個動作:
-
在 Windows 版 Excel 中,選取 [公式] > [名稱管理員]。
-
在 Mac 版 Excel 中,選取 [公式] > [定義名稱]。
-
-
選取 [新增],然後在 [新增名稱] 對話方塊中輸入資訊:
名稱:
輸入 LAMBDA 函數的名稱。
範圍:
預設值為活頁簿。 也可以是個別工作表。
註解:
選用,但強烈建議設定。 最多可輸入 255 個字元。 簡單描述函數的用途,以及正確的引數數目和類型。
當您輸入公式並使用公式自動完成 (也稱為 Intellisense) 時,會顯示在 [插入函數] 對話方塊中,並顯示為工具提示 (以及計算引數)。
參照對象為:
輸入 LAMBDA 函數。
例如:
-
若要建立 LAMBDA 函數,請選取 [確定]。
-
若要關閉 [名稱管理員] 對話方塊,請選取 [關閉]。
如需詳細資訊,請參閱使用名稱管理員。
範例
在名稱管理員中定義下列項目:
名稱: |
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 |
在名稱管理員中定義下列項目:
名稱: |
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 |
在名稱管理員中定義下列項目:
名稱: |
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 |
在名稱管理員中定義下列項目:
名稱: |
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 技術社群中的專家,或在社群中取得支援。