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 ラブ 30 サーティン・ラブ・サーティ

ワイルド・スピードX2

十二人の怒れる男

2

エターナル・サンシャイン

13日の金曜日

ノーカントリー

名前付き関数: 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))

この例では、MAP 関数に 2 個の配列を渡しましたが、LAMBDA 関数には 1 個の名前引数「セル」しか指定していません。

MAP 関数の最後のパラメータが LAMBDA 関数でなかった

MAP 関数の最後のパラメータが LAMBDA 関数でなかった場合、次のエラーが発生します。

「引数は LAMBDA 関数にする必要があります。」

例: =MAP(C1:C3, 3)

MAP 関数に渡された LAMBDA 関数が正しくない

有効ではない名前引数がある場合、次のエラーが発生します。

「関数 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 ファイルを操作する方法、プロジェクト計画やチーム カレンダーを動的に作成する方法、受信トレイを自動的に整理する方法などをご確認いただけます。

検索
検索をクリア
検索を終了
メインメニュー
2050582668897584818
true
ヘルプセンターを検索
true
true
true
true
true
35
false
false