LAMBDA 函式(三):MAP

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

今天要接著聊聊 LAMBDA 的第二個輔助函式,MAP

英文中「map」這個詞除了有名詞「地圖」的意思之外,在電腦科學與數學領域裡面偶有動詞「映射」的意思。在正式介紹 MAP 函式之前,我想先用一張圖簡單介紹 Google 試算表 MAP 函式的「映射」是什麼意思。

想像你有個「1、2、3」的陣列,想讓陣列的每個值乘以自己(平方),讓它出現在另一個陣列上:

raw-image

這就是 MAP 的映射了。

Google 試算表的 MAP 函式會讀取某範圍,讓它裡面每個數值都以 LAMBDA 函式運算,回傳對應的新範圍。以上面的例子來說,左手邊的「1、2、3」經過了中間的 LAMBDA 運算(自己乘以自己),就映射出右手邊的「1、4、9」了。

我們常用 MAP 函式做這些事:

  • 資料清理:轉換大小寫、篩選資料、清除特定字詞
  • 資料分類:可搭配不同的條件分類資料(可突破 ArrayFormula 不能與 ANDOR 使用的限制)
  • 清單的文字處理:批次擷取或取代文字

我個人是把 MAP 當作一種 ArrayFormula 在特定狀況無法使用的替代方案(特別是 ANDOR)、或是在做資料清理時,遇到多張結構相似的試算表時候就會用 MAP,再搭配已命名函式,把打包好的函式套用在其他地方,直接把時間省起來,提早休息!

點這邊可以到練習用的試算表,歡迎複製一份,我們一起來練習。




MAP 語法

=MAP(範圍, LAMBDA)
  • 範圍:要套用 LAMBDA 函式的範圍。
  • LAMBDA:要 MAP 套用於範圍內每個值的自訂函式。

語法相當單純!如果你有多個範圍要操作,當然可以多寫幾個範圍,再用 LAMBDA 結束:

=MAP(範圍 1, 範圍 2, 範圍 3, ... LAMBDA)


拿上面的例子,假設在 A1A3 有「1、2、3」三個數字:

raw-image

我希望在 B1B3 可以映射出 A1A3 的平方。在 B1 寫:

=MAP(A1:A3, LAMBDA(val, val * val))
  • 要運算的範圍:A1:A3
  • LAMBDA:把 A1A3 的每個值叫做 val,然後讓它自己乘以自己(val * val)。
raw-image

來看看執行結果:

raw-image

可以看到 B 欄成功把 A 欄透過 LAMBDA 函式映射過去、得到想要的結果了!

那我們來實際操作看看!✨




計算服飾特價

先從簡單的例子開始好了。打開「計算服飾特價」工作表:

raw-image

我們試著用 MAP 函式來算每個品項打 8 折的特價吧!

先釐清一下需求:

  • 範圍:B2B11
  • LAMBDA:範圍的值乘以 0.8。我把範圍裡的值叫做 val,讓 LAMBDA 去計算它。

這樣拼湊起來,我們就會得到:

=MAP(B2:B11, LAMBDA(val, val * 0.8))


放在 C2 上面,看看執行效果怎麼樣:

raw-image

這樣就完成了!




VIP 會員分級

把範圍的資料按條件分類也是 MAP 的常用場景之一。接下來試試看第二個練習,「VIP 會員分級」:

raw-image

我想把每個會員依據 B 欄的消費金額簡單分類,讓他們有不同的會員等級。

分級規則是這樣的:

  • 消費金額超過 50000 元 → VVVIP
  • 消費金額超過 30000 元 → VVIP
  • 消費金額超過 10000 元 → VIP
  • 消費金額低於或含 10000 元 → 一般會員

好,來釐清一下需求:

  • 範圍:B2B13
  • LAMBDA:範圍的值用 IFS 來分類,讓值根據我們設定的條件顯示不同的結果。這邊一樣把範圍裡的值叫做 val,讓 LAMBDA 去計算它。

好,把這邊的需求拼起來,我們就會得到:

=MAP(B2:B13, LAMBDA(val, 
IFS(val > 50000, "VVVIP", val > 30000, "VVIP",
val > 10000, "VIP", val <= 10000, "一般會員")))

我們在 C2 輸入這串算式,就會得到:

raw-image


這樣就輕易完成囉!

如果你不熟悉 IFS 的用法,可以回來這邊複習一下:IFS,IF 只要加個 S...?如果你有更細緻的條件想要設定,當然可以再進一步搭配 ANDOR 函式。




匯率換算

最後來挑戰困難一點點的「匯率換算」!我們要試試看讓 MAP 讀取兩組範圍的值,個別讓 LAMBDA 處理。

raw-image

A 欄跟 B 欄有各有一組資料,分別是當地貨幣與幣別代號。我們想要把每一列的外幣轉成台幣,顯示在 C 欄,像是這樣:

  • 50 USD → ___ TWD
  • 500,000 JPY → ___ TWD
  • 500 EUR → ___ TWD

⋯⋯以此類推。

說到匯率換算,就可以用 GOOGLEFINANCE 函式來幫我們的忙。我們只要把外幣幣別代號跟新台幣的「TWD」代號串在一起,就算得出目前外幣轉新台幣的匯率。舉例:

  • USDTWD:美金轉新台幣
  • JPYTWD:日幣轉新台幣
  • EURTWD:歐元轉新台幣

比如說,下面的算式可以得到 100 塊美金(USD)可以換多少新台幣:

=100 * GOOGLEFINANCE("USDTWD")

(不確定 GOOGLEFINANCE 怎麼做的話,歡迎來這複習:日幣換了沒?GOOGLEFINANCE 總整理(一):匯率換算


一樣釐清一下需求有哪些:

  • 範圍:A2A6(當地貨幣)、B2B6(幣別代號)
  • LAMBDA:取 A 欄的值,之後取 B 欄位的幣別代號並讓它和 TWD 字串接在一起後交給 GOOGLEFINANCE,再讓 A 欄的值跟 GOOGLEFINANCE 的結果相乘。

看起來有點複雜,沒關係!我們一步步來。先從 MAP 這邊指定要運算的範圍:

=MAP(A2:A6, B2:B6, 

LAMBDA

=MAP(A2:A6, B2:B6,
LAMBDA(

接下來指定參數的名稱。我這邊用 local 表「當地貨幣」、code 表「貨幣代碼」,這邊要照順序寫讓 local 會和前面的 A 欄對應、code 與 B 欄對應:

=MAP(A2:A6, B2:B6,
LAMBDA(local, code,

再來要做匯率的轉換,就是 local 乘以 GOOGLEFINANCE 的結果:

=MAP(A2:A6, B2:B6,
LAMBDA(local, code, local * GOOGLEFINANCE(

最後,把剛剛指定的 code(貨幣代碼)和新台幣代號的 TWD 串起來,然後順便寫前面 LAMBDAMAP 的右括號:

=MAP(A2:A6, B2:B6,
LAMBDA(local, code, local * GOOGLEFINANCE(code & "TWD")))

這樣就完成了!


我們在 C2 執行看看,就會得到:

raw-image

搞定!




最後,我另外做了一份「VIP 會員分級 + AND / OR」的示範:

raw-image

你可以點 D2,這邊是我的算式:

=MAP(B2:B, C2:C, LAMBDA(amount, visits,
IFNA(IFS(AND(amount >= 80000, visits >= 8), "VVVIP",
AND(amount >= 80000, visits < 8), "VVIP",
AND(amount <= 80000, visits >= 8), "VIP"),
"一般會員")))

我試著用 MAP,讓它跟 ANDOR 搭配使用。這突破 ArrayFormulaANDOR 不能同時使用的限制,這麼一來也就不需要用巢狀 IF 囉。有興趣的話歡迎參考一下!




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

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

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

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



留言
avatar-img
留言分享你的想法!
avatar-img
喜特先生官方沙龍
21.1K會員
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
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
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
接著想要一口氣介紹兩個類似的 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 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
Thumbnail
本篇文章深入介紹了圖形的基本概念、組成和應用。從圖形的基本組成,到圖的類型與種類,再到圖形演算法的三大類型,本文將接續圖形領域的深入學習,並分享了對圖形的初步認識和學習方向的小心得。希望對正在學習圖形的人有所幫助。
Thumbnail
本篇文章深入介紹了圖形的基本概念、組成和應用。從圖形的基本組成,到圖的類型與種類,再到圖形演算法的三大類型,本文將接續圖形領域的深入學習,並分享了對圖形的初步認識和學習方向的小心得。希望對正在學習圖形的人有所幫助。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News