LAMBDA 函式(一):基本原理

更新於 發佈於 閱讀時間約 8 分鐘

Google 試算表在 2022 年隆重推出了 LAMBDA 函式跟它的輔助函式,讓使用者可以製作自己的函式,還可以在指定範圍內做複雜的運算LAMBDA 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!

在這個更新前,要設計自己的函式得仰賴 Apps Script,但寫程式的門檻不低,把自製函式匯入到其他試算表也需要一點心力,實在沒那麼親民;但現在只要將 LAMBDA 和已命名函式功能搭配在一起,我們就可以輕易實現那些目標。

實務上我們會拿 LAMBDA 搭配它的輔助函式,就可以用特定方式來進一步處理範圍的資料,運算能力就會更加強大。

這次的分享只會專注在 LAMBDA 的寫法本身,也會再提已命名函式作為應用。其他的輔助函式會在日後一一介紹,LAMBDA 的力量也會慢慢解開封印的!如果這是你第一次聽說已命名函式,你可以到這邊複習一下再回來看看喔:已命名函式,超方便!




語法解釋

LAMBDA 函式可以讓我們設計自己的函式,在當前的試算表內可以重複運用。

為了要設計這樣的函式,我們要給 LAMBDA 參數,然後在後面用那些參數寫算式。

語法看起來像這樣:

=LAMBDA(參數1, 參數2, ..., 算式)

寫參數的時候有一些限制跟建議:

  • 不可以是儲存格參照或範圍,像是 A1A2 這類的
  • 不可以寫空格或特殊字元
  • 開頭也不可以寫數字
  • 通常不會寫內建函式名稱,像是 SUMAVERAGEQUERY 這類的

雖然說參數寫中文也沒關係,但我通常寫簡單的英文字母:

  • 數字寫 val(value 的簡寫)
  • 文字寫 t(text 的簡寫)
  • 列寫 r(row 的簡寫)
  • 欄寫 c(column 的簡寫)
  • abcxyza1val1t1 這類的也可,製作函式時看得懂就好。

而後面的算式,就會用到前面定義的參數,這邊就可以開始設計函式了。

我們等等會寫這樣的東西:

把 x 的值乘以 2 的函式​
=LAMBDA(x, x * 2)

把 val1 跟 val2 加起來的函式​
=LAMBDA(val1, val2, val1 + val2)

把 t1 跟 t2 串起來的函式​
=LAMBDA(t1, t2, t1 & t2)

在前面定義的參數都要在後面的算式用到,不然等等會回傳 #N/A 錯誤喔!

另外,如果要單獨使用 LAMBDA 函式的話,我們要再放一組括號,裡面填入實際的參數,一開始定義了多少,這邊就放多少。像是這樣:

=LAMBDA(x, x * 2)(10)
--> 10 * 2
--> 20

=LAMBDA(x, y, x * 2 + y * 3)(10, 5)
--> 10 * 2 + 5 * 3
--> 35

我會在測試 LAMBDA 是不是我想要的結果時,會放這樣一組括號,但是跟等等要介紹的輔助函式配合的時候,就不可以放了,要注意一下。




輔助函式

LAMBDA 雖然是可以單獨使用,但我們大多會把它跟 LAMBDA 的輔助函式搭配使用,讓 LAMBDA 發揮更大的效力。簡單介紹一下輔助函式有哪些:

  • MAKEARRAY:套用 LAMBDA 函式運算,建立指定欄列大小的範圍。
  • MAP:對範圍內的每個值套用 LAMBDA 函式,產生出對應的新值。
  • BYCOL:以欄為單位,套用 LAMBDA 函式運算,回傳一列。
  • BYROW:以列為單位,套用 LAMBDA 函式運算,回傳一欄。
  • REDUCE:對範圍內的值以 LAMBDA 函式運算,累計成單一個值。
  • SCAN:逐列逐欄套用 LAMBDA 函式運算,回傳運算過程中的所有中間值。

舉例來說,你可以用 MAP 函式把 A1A10 中的每個值傳給 LAMBDA,把結果輸出為新的一欄:

=MAP(A1:A10, LAMBDA(x, x * 5))
raw-image

要注意到,如果輔助函式有多個參數要寫,參數的順序就會有關係。我的理解是:

raw-image

① 對應到甲、② 對應到乙,如果有更多參數就也是這樣類推。

舉個官方文件的例子:

=MAP(A1:B3, D1:E3, G1:H3, LAMBDA(valA, valB, valC, MAX(valA, valB, valC)))

前面是輔助函式的 MAP,包著 LAMBDA。這邊的對應關係是這樣的:

  • 前面的 A1:B3 對應到後面的 valA
  • 前面的 D1:E3 對應到後面的 valB
  • 前面的 G1:H3 對應到後面的 valC

所以綜合起來,我們可以在這下個小結論:

LAMBDA 是用來定義我們想重複使用的算式,然後輔助函式則是決定這個算式要怎麼被運用在範圍上的方法。

如果現在還是不太確定該怎麼操作的話也沒關係,之後會再逐一說明每個輔助函式的用法,會舉一些實際的例子給大家參考。




應用範例

在這邊我會示範「單純用 LAMBDA 函式」的方法,還有LAMBDA 函式放入已命名函式功能的過程。

第一步:先設計函式

我想做一個輸入數值後,幫我把它乘以 5 的函式,像是:

  • 放 2 進去,回傳 10。(2 * 5 = 10)
  • 放 5 進去,回傳 25。(5 * 5 = 25)
  • 放 10 進去,回傳 100。(10 * 5 = 25)

我們可以寫:

=LAMBDA(x, x * 5)
  • 參數:x
  • 算式:x * 5,x 乘以 5 的意思
raw-image

這樣就設計好了。

但在這步如果直接按下 Enter 的話,會出現 #N/A 錯誤:

raw-image

這是因為雖然函式設計好了,需要實際的值來讓 LAMBDA 運用。我們在這邊加上一組括號,用實際的數值來算算看吧:

=LAMBDA(x, x * 5)(2)
raw-image

這樣 LAMBDA 函式的設定就告一個段落了。


第二步:再加入「已命名函式」

接下來把剛剛設計好的函式,打包成叫做 QUNITUPLE(五倍的意思)的已命名函式。這樣一來就可以在試算表歡樂使用了!

點開畫面上方的「資料」>「已命名函式」:

raw-image

右手邊會出現一個窗格:

raw-image

點下方的「新增函式」,開始進入已命名函式的編輯畫面。

raw-image

這邊就可以著手,把剛剛做好的 LAMBDA 放進去已命名函式編輯窗格裡。

這是我的設定:

raw-image

這麼一來就可以在試算表內自由使用這個函式了:

raw-image




使用 LAMBDA 的時機

看到這邊,不知道你有沒有想過:

  • 「這樣不會有點多餘嗎?如果算式很簡單、只需要計算這個東西一次,我何必要用 LAMBDA?直接用儲存格參照加減乘除就可以了吧?」
  • 「我也可以不用 LAMBDA 做已命名函式,那為什麼還要學 LAMBDA?」

所以我想列了一些適合用 LAMBDA 的場合:

  • 想對範圍裡的值做複雜運算的時候
  • 想把自己設計的算式,打包成已命名函式的時候
  • 想重複使用相同的算式的時候

不適合用 LAMBDA 函式的場合:

  • 只想做簡單運算的時候:像上面乘以 5 的例子,這類加減乘除、簡單取總和、平均、最大值、最小值、算儲存格數量這些的,就沒必要用 LAMBDA 讓函式看起來更複雜。
  • 想讓試算表效能提升的時候:大多數的內建函式的效能通常比 LAMBDA 函式好。你的試算表本身已經有點「重」、效能不好的話,優先用內建函式解決問題會比較好一些;還有,如果你想讓 LAMBDA 結合 Apps Script、或是結合需要大量資源運算的函式(比如說大範圍的 IMPORTRANGEQUERYFILTER 等),我也不那麼推薦,理由同上,因為效能恐怕會不太好。




最後謝謝讀者的敲碗 🙏✨✨:

raw-image

之後會開始解釋 LAMBDA 的輔助函式,也會介紹一些實際的案例!




如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



留言
avatar-img
留言分享你的想法!
喜特先生 Mr. Sheet -avatar-img
發文者
2024/05/04
LAMBDA 系列文索引提及了這篇文章,趕快過去看看吧!
R-avatar-img
2024/04/08
喜特先生深入淺出的教學真的很棒,會讓人豁然開朗,仔細拜讀喜特先生的說明後,我突然開始有點看得懂官方文件的說明了,很期待LAMBDA輔助函式的後續介紹跟實際應用。
喜特先生 Mr. Sheet -avatar-img
發文者
2024/04/08
R 太好了!有幫上忙就好✨如果有任何問題都歡迎提問~
avatar-img
喜特先生官方沙龍
19.0K會員
153內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
高效生活,幫助你找回更多自己的時間 歡迎來到 AL 的 Googlesheet 學習筆記系列文章。在這個系列中,我們將一步步介紹各種函數,並將它們應用於日常生活中,加速工作、提高效率。 今天要介紹的是使用 Index 、 Counta 函數尋找最後一列的資料!
Thumbnail
高效生活,幫助你找回更多自己的時間 歡迎來到 AL 的 Googlesheet 學習筆記系列文章。在這個系列中,我們將一步步介紹各種函數,並將它們應用於日常生活中,加速工作、提高效率。 今天要介紹的是使用 Index 、 Counta 函數尋找最後一列的資料!
Thumbnail
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
Thumbnail
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
Thumbnail
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
Thumbnail
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
Thumbnail
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Thumbnail
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Thumbnail
這邊統整了關於 IMPORTRANGE 的一系列文章!IMPORTRANGE 是 Google 試算表裡面相當好用方便的函式,跟內建功能和函式結合,可以讓你更彈性地處理資料。
Thumbnail
這邊統整了關於 IMPORTRANGE 的一系列文章!IMPORTRANGE 是 Google 試算表裡面相當好用方便的函式,跟內建功能和函式結合,可以讓你更彈性地處理資料。
Thumbnail
接著想要一口氣介紹兩個類似的 LAMBDA 輔助函式:BYROW 跟 BYCOL。
Thumbnail
接著想要一口氣介紹兩個類似的 LAMBDA 輔助函式:BYROW 跟 BYCOL。
Thumbnail
今天要接著聊聊 LAMBDA 的第二個輔助函式,MAP。 英文中「map」這個詞除了有名詞「地圖」的意思之外,在電腦科學與數學領域裡面偶有動詞「映射」的意思。一起來看看怎麼用!
Thumbnail
今天要接著聊聊 LAMBDA 的第二個輔助函式,MAP。 英文中「map」這個詞除了有名詞「地圖」的意思之外,在電腦科學與數學領域裡面偶有動詞「映射」的意思。一起來看看怎麼用!
Thumbnail
我們馬上來介紹 LAMBDA 函式的第一個輔助函式 MAKEARRAY!
Thumbnail
我們馬上來介紹 LAMBDA 函式的第一個輔助函式 MAKEARRAY!
Thumbnail
Google 試算表在 2022 年隆重推出了 LAMBDA 函式跟它的輔助函式,讓使用者可以製作自己的函式,還可以在指定範圍內做複雜的運算。LAMBDA 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
Thumbnail
Google 試算表在 2022 年隆重推出了 LAMBDA 函式跟它的輔助函式,讓使用者可以製作自己的函式,還可以在指定範圍內做複雜的運算。LAMBDA 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News