使用 LAMBDA 函數來建立自訂、可重複使用的函數,並按易記名稱呼叫它們。 新函數可在整個工作表中使用,並如原生 Excel 函數般呼叫。
您可以為常用的公式建立函數,不需要複製並貼上此公式 (這很容易出錯),並有效地將您自己的函數新增至原生 Excel 函數程式庫。 此外,LAMBDA 函式不需要 VBA、巨集或 JavaScript,非程式設計師也能從中受益。
語法
=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 函數的任何名稱,例如字串常數、儲存格範圍或表格。
程序
執行下列其中一個動作:
- 在 Windows 的 Excel 中,選擇 「公式名稱>管理器」。
- 在 Mac 版 Excel 中,選擇 「公式>定義名稱」。
選取 [新增],然後在 [新增名稱] 對話方塊中輸入資訊:
名稱: 輸入 LAMBDA 函數的名稱。 範圍: 預設值為活頁簿。 也有個別試算表,唯獨網頁版的 Excel 除外。 註解: 選用,但強烈建議設定。 最多可輸入 255 個字元。 簡單描述函數的用途,以及正確的引數數目和類型。
在輸入公式並使用公式自動補全 (也稱為 Intellisense) 時, () 與計算參數一同顯示在「插入函式」對話框及工具提示中。參照對象為: 輸入 LAMBDA 函數。 例如:
若要建立 LAMBDA 函數,請選取 [確定]。
若要關閉 [名稱管理員] 對話方塊,請選取 [關閉]。
如需詳細資訊,請參閱使用名稱管理員。
範例
範例 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 技術社群 的專家詢問,或在 社群中獲得支援。