[Microsoft 365]
Excelの MAP(マップ)関数の使い方を紹介します。
Microsoft 365の新関数であるMAP関数は、LAMBDA関数のヘルパー関数です。LAMBDA関数に配列の要素を1つずつ渡して計算し、その戻り値からなる配列を返します。
書式
LAMBDA関数に配列の各要素を渡して計算する
=MAP(配列1, [配列2…], LAMBDA関数)
[配列]の要素を1つずつ[LAMBDA関数]に渡して計算し、その戻り値からなる配列を返します。
■引数
引数 | 説明 |
---|---|
配列 | 配列やセル範囲を指定する。 |
LAMBDA関数 | 戻り値の計算方法を指定するためのLAMBDA関数を指定する。 |
LAMBDA関数の書式は以下のとおりです。MAP関数の引数[配列1]がLAMBDA関数の引数[変数1]、MAP関数の引数[配列2]がLAMBDA関数の引数[変数2]……、に渡されます。
=LAMBDA([変数1, 変数2…], 計算式)
MAP関数の使用にはLAMBDA関数の知識が必要です。LAMBDA関数の使い方は「LAMBDA関数 ● オリジナルの関数を定義する」を参照してください。
以下の「使用例1」「使用例2」では、四則演算を例にMAP関数の使い方を紹介します。実際にはこのような単純な計算にMAP関数を使うことはないと思いますが、MAP関数の使い方の例として参考にしてください。
使用例1…1つの配列を渡す
「セルB2~C4の数値を2倍にした配列を求める」という簡単な例でMAP関数の使い方を紹介します。MAP関数の引数[配列1]にセルB2~C4を指定し、引数[LAMBDA関数]に数値に2を掛けた結果を求めるLAMBDA関数「LAMBDA(x,x*2)」を指定します。すると、セルB2~C4が1つずつ「x」に渡され、「x*2」が計算されます。セルB2~C4は3行2列の配列で要素は6つなので、「x*2」の計算が6回行われ、3行2列の配列が返されます。
実際にセルにMAP関数を入力するときは、単一のセル(ここではセルE2)を選択して入力します。[Enter]キーを押して数式を確定すると、戻り値の配列のサイズ(ここでは3行2列)の範囲に数式がスピル(隣接するセルに数式が自動拡張すること)し、結果が表示されます。
=MAP(配列1, LAMBDA関数)
セルE2 | =MAP(B2:C4,LAMBDA(x,x*2))
MAP関数を修正したいときは、入力時と同様に単一のセルE2を選択して数式を修正し、[Enter]キーで確定してください。
使用例2…2つの配列を渡す
次に、2つの配列を渡す例を紹介します。MAP関数の引数[配列1]にセルB2~C4を指定し、引数[配列2]にセルE2~F4を指定します。引数[LAMBDA関数]に「x」と「y」の和を求めるLAMBDA関数「LAMBDA(x,y,x+y)」を指定します。すると、セルB2~C4とセルE2~F4の同じ位置にある要素が1つずつ「x」と「y」に渡され、「x+y」が計算され、同じサイズの配列が返されます。