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