MAP 函式

這個函式會對每個值套用 LAMBDA 函式,藉此將指定陣列中的各個值對應為新值。

用法示範

MAP(A1:A5, LAMBDA(儲存格, 儲存格*2)):以單一範圍做為輸入內容的 MAP 函式。

MAP(A1:A5, B1:B5, LAMBDA(儲存格1, 儲存格2, MAX(儲存格1, 儲存格2))):以多個範圍做為輸入內容的 MAP 函式。

MAP(UNIQUE(A1:A10), LAMBDA(數字, 數字 + 1)):以陣列做為輸入內容的 MAP 函式。

語法

MAP(陣列1, [陣列2, ...], LAMBDA)

  • 陣列1:要對應的範圍陣列。
  • 陣列2, …:[選用] 要對應的其他陣列或範圍。
  • LAMBDA:這個 LAMBDA 函式會對應到指定陣列中的各個值,藉此取得新的對應值。
    • 語法: LAMBDA(名稱1, [名稱2, …], 公式_運算式)
    • 相關規定:
      • 對每個傳遞的陣列來說,LAMBDA 都必須含有剛好 1 個名稱引數,以及使用這些名稱的公式_運算式。套用 LAMBDA 後,這些名稱會解析為已傳遞陣列中目前所對應的值。

附註

  • 傳遞的 LAMBDA 函式應接受剛好與提供給 MAP 的輸入陣列一樣多的名稱引數,否則會傳回 #N/A 錯誤。這些引數會對應到輸入陣列中要與新值對應的數值。

  • 輸入陣列中的值應對應至單一值。系統不支援對應值的陣列結果。

  • 你可以為 LAMBDA 參數傳遞已命名函式,運作方式與這裡所說的 LAMBDA 相同。請參閱這篇文章,進一步瞭解已命名函式。
    • 為此函數定義的引數預留位置應剛好與傳遞給 MAP 的輸入陣列一樣多。
    • 已命名函式後方不得加上括號。

範例

使用 MAP 進行簡單的加倍運算

範例資料:

 

A

B

C

D

1

1

2

2

3

4

3

   

2

4

4

6

8

範例:C3: =MAP(A1:B2, LAMBDA(儲存格, 儲存格*2)) 中輸入這個公式

將半形逗號分隔值對應至帶連字號的 SKU 代碼

範例資料:

 

A

B

1

牛仔褲,黑色,XL

牛仔褲-黑色-XL

2

短褲,棕色,S

短褲-棕色-S

3

T 恤,紅色,L

T 恤-紅色-L

4

裙子,粉紅色,M

裙子-粉紅色-M

範例:B1: =MAP(A1:A4, LAMBDA(項目, JOIN("-", SPLIT(項目, ",")))) 中輸入這個公式

將多個輸入範圍對應至各個資料集中的最大值

範例資料:

 

A

B

C

D

E

F

G

H

1

38.9

17.8

 

42

20.2

 

38.6

21.2

2

39.2

19.6

 

37.8

17.1

34.6

21.2

3

34.1

18.1

41.1

17.6

36.6

17.8

範例:=MAP(A1:B3, D1:E3, G1:H3, LAMBDA(值A, 值B, 值C, MAX(值A, 值B, 值C)))

結果:

 

A

B

1

42

21.2

2

39.2

21.2

3

41.1

18.1

使用已命名函式做為 LAMBDA 來計算含有數字的儲存格

建立副本

範例資料:

 

A

B

C

1

13 Going On 30

2 Fast 2 Furious

12 Angry Men

2

Eternal Sunshine of the Spotless Mind

Friday the 13th

No Country for Old Men

已命名函式:CONTAINS_NUMBER已命名函式,可檢查指定字串值是否包含任何數字。

公式定義:=ARRAYFORMULA(OR(ISNUMBER(SPLIT(儲存格, " ")))),其中儲存格是針對 CONTAINS_NUMBER 定義的引數預留位置。

範例:=COUNTIF(MAP(A1:C2, CONTAINS_NUMBER), true)

結果:

3

常見錯誤

輸入陣列的大小不相符

如果輸入陣列的大小不相符,就會發生下列錯誤:

「MAP 的陣列引數大小不同。」

示例: =MAP(C1:C4, D1:D2, LAMBDA(x, x+1))

在這個示例中,陣列 C1:C4 與陣列 D1:D2 的大小不相符。

傳遞的 LAMBDA 沒有剛好與輸入陣列一樣多的名稱引數

如果傳遞的 LAMBDA 沒有剛好與提供給 MAP的輸入陣列一樣多的名稱引數,就會發生這個錯誤:

「『LAMBDA』的引數數目錯誤。引數數目應該有 3 個,現在卻有 2 個。」

示例: =MAP(C1:C4, D1:D4, LAMBDA(儲存格, 儲存格+1))

在這個示例中,我們將 2 個陣列傳遞至 MAP,但 LAMBDA 只有 1 個名稱引數儲存格。

MAP 的最後一個參數不是 LAMBDA

如果 MAP 的最後一個參數不是 LAMBDA,就會發生這個錯誤:

「引數必須是 LAMBDA。」

示例: =MAP(C1:C3, 3)

傳遞至 MAP 的 LAMBDA 不正確

如果 1 或多個名稱引數無效,就會發生這個錯誤:

「LAMBDA 函式的引數 1 不是有效名稱」。

示例: =MAP(C1:C3, LAMBDA(C1, C1+1))

在這個示例中,C1 與範圍衝突,因此是無效的名稱

在輸入陣列套用 LAMBDA 會對應至多個值或其他陣列

如果在輸入陣列中套用 LAMBDA 會將各個值對應至多個值或其他陣列,就會發生這個錯誤:

「必須是單一值。系統不支援巢狀陣列結果。」

示例: =MAP(E1, LAMBDA(字詞, SPLIT(字詞, " ")))

在這個示例中,我們試圖將儲存格中的文字對應至字詞陣列。

相關函式

  • LAMBDA 函式:這個函式可讓你建立及傳回自訂函式,其中含有一組名稱和使用這組名稱的公式_運算式
  • REDUCE 函式:這個函式會將陣列縮減為累計結果。
  • BYROW 函式:這個函式會依照資料列將陣列分組。
  • BYCOL 函式:這個函式會依照資料欄將陣列分組。
  • SCAN 函式:這個函式會掃描陣列並產生中繼值。
  • MAKEARRAY 函式:這個函式會建立指定維度的計算陣列。
  • 建立及使用已命名函式:這個函式可讓使用者建立及儲存自訂函式,類似於 LAMBDA

還有其他問題嗎?

嘗試以下步驟:

true
造訪學習中心

您有在公司或學校使用 Google 文件等 Google 產品嗎?快來試試實用的秘訣、教學課程和範本,瞭解如何在不安裝 Office 的情況下處理 Office 檔案、建立動態專案計劃和小組日曆、自動整理收件匣及進行其他作業。

搜尋
清除搜尋內容
關閉搜尋
主選單
16984103695079840425
true
搜尋說明中心
true
true
true
true
true
35
false
false