MAP関数 – 複数の配列に関数を適用して新しい配列を生成する関数
1. 使い方と活用例
MAP関数は、1つまたは複数の配列の要素に対して指定したラムダ式(LAMBDA関数)を適用し、処理結果を配列として返す関数です。
プログラミングにおける「マップ処理」と同様に、各要素に同じロジックを実行することができます。
2. 基本の書式
=MAP(array1, [array2], ..., LAMBDA(引数1, [引数2], ..., 処理))
3. 引数の説明
- array1, array2, … – 処理対象となる1つ以上の配列。
- LAMBDA – 各配列の要素に適用する関数。配列の数に応じて引数を定義し、処理を指定します。
4. 使用シーン
- 配列内の各値に特定の計算(例:割引や乗算)を一括適用したい場合
- 複数の配列を同時に処理し、要素ごとの計算結果を得たい場合
- 配列処理をコードのように明確に記述したい場合
5. 応用のポイント
MAP関数は、引数の数だけ配列を渡し、それぞれの要素をLAMBDA関数で処理します。
複数の配列を渡した場合、それらの要素を同じインデックスごとに対応させて処理が実行されます。
LAMBDAの中で他の関数(IF、TEXT、ROUNDなど)を使うことで複雑な処理も可能です。
6. 具体例とその解説
=MAP(A1:A5, LAMBDA(x, x * 1.1))
この式は、A1:A5の各セルの値に10%を加算して返します。
結果はスピルとして縦に展開されます。
=MAP(A1:A5, B1:B5, LAMBDA(a, b, a + b))
この式は、A列とB列の同じ行の値を足し合わせ、新しい配列として返します。
複数の配列を同時に処理した例です。
7. 関連関数の紹介
- LAMBDA関数 – 独自のカスタム関数を定義する関数
- BYROW関数 – 配列の行単位で処理を行う関数
- BYCOL関数 – 配列の列単位で処理を行う関数
- REDUCE関数 – 配列の各要素を順に処理して単一の値にまとめる関数
- SCAN関数 – 累積的に処理を適用し、各ステップの結果を配列で返す関数
8. まとめ
MAP関数は、Excelにおける関数型プログラミングのような操作を実現する強力な関数です。
複数の配列に同じ処理を適用したい場合や、カスタマイズされたロジックを動的に構築したい場合に非常に有効です。
LAMBDA関数との組み合わせにより、コードのように読みやすく再利用可能な式が書けるようになります。
9. 対応バージョン
MAP関数は、Microsoft 365(Excel for Microsoft 365)限定の関数であり、Excel 2021以前のバージョンでは使用できません。