【Excel】MAP関数でループ処理を行うには

MAP関数はラムダヘルパー関数の一種です。

ラムダ関数とは?って方は初めにラムダ関数についてもまとめてますので先にそちらを確認してください。

tec.k3nw.com

MAP 関数とは

MAP 関数は選択したセルの範囲をループ処理し新しい値に形成した配列を返します。

何言ってるか分からないかもですが動作を確認すれば単純で便利な関数です。

 

 

 

構文

= MAP (array, [array, ...] lambda)

MAP 関数では次の引数とパラメーターがあります。

array マップする配列です。lamda関数へ複数の配列を渡す必要がある場合、複数指定します。

lambda  計算するlambda関数を入力します。

 

使い方

例として下記の商品リストがあります。

商品ごとに合計金額を出したい場合の記入例です。

Excel map関数

式はE2へ入力を行いE3:E5に関してはスピルで表示されているゴーストです。

LAMBDA関数では価格と個数を掛け合計金額を返します。

MAP関数で価格にB2:B5、個数でC2:C5を指定してます。

この場合、LAMBDA関数では

LAMBDA(price, num, price * num)(B2, C2)

LAMBDA(price, num, price * num)(B3, C3)

LAMBDA(price, num, price * num)(B4, C4)

LAMBDA(price, num, price * num)(B5, C5)

のように繰り返し処理され戻り値が戻されます。

これ以上の機能はないので使ってみると簡単ですよね。

ただし、複数の配列を指定する場合、同じ数を指定しないとN/Aになります。

 

又、リストをテーブルにすることでデータを追加されたときなど自動的に更新することも可能です。

Excel map関数

 

上記、例の場合

=テーブル2[価格]*テーブル2[個数]

と入力することでスピル機能で同様の結果が得られますが、LAMBDA関数側で複雑な処理が必要な場合に利用するのがお勧めです。