Excel:ラムダ関数の使用方法
Microsoft 365でExcelに追加されたLAMBDA関数の使用方法を紹介したいと思います。
LAMBDA関数とは
ユーザ定義関数を定義する場合、これまではVBAを使用して作成する必要がありました。LAMBDA関数が追加されたことでユーザ定義関数を数式のみで作成することができるようになり、数式のみで定義できるようなユーザ定義関数の作成にVBAを使用する必要がなくなりました。
LAMBDA関数の定義は以下になります。
LAMBDA([パラメーター1, パラメーター2, ...,]計算)
引数 | 説明 |
---|---|
パラメーター | 関数に渡す入力パラメーターを設定することができます。この引数は省略可能で最大253個のパラメーターを設定できます。 |
計算 | 関数の結果を返す数式を定義します。これは最後の引数で必須です。また数式は結果を返す必要があります。 |
関数に入力パラメーターが必要な場合、関数のパラメーターに任意の名前をつけて定義することができます。最後の引数は関数の本体となる数式を定義します。
例えば与えられた2つの引数を加算して返す関数は以下の定義になります。
=LAMBDA(a, b, a + b)
上記数式をセルに入力した場合#CALC!
と表示されますが、LAMBDA関数の後ろにかっこで括って引数を与えるように数式を変更することでセルに計算結果が表示されます。
=LAMBDA(a, b, a + b)(1, 2)
定義した関数をすぐに利用するイメージです。
LAMBDA関数で自作関数を作成する
先ほどのようにLAMBDA関数をセルに直接入力して使用することもできますが、LAMBDA関数を使用した数式に名前を付けて自作関数として定義して使用するのが一般的かと思います。
名前の定義からLAMBDA関数を自作関数として定義する手順を紹介します。
まずリボンの数式タブの「名前の管理」をクリックします。
次に名前の管理ダイアログで「新規作成」ボタンをクリックします。
名前の編集ダイアログで自作関数の定義を行います。
2つの引数を加算して返す「足し算」関数を定義しました。
項目 | 設定値 |
---|---|
名前 | 自作関数の名前「足し算」を設定します |
範囲 | 自作関数を参照することができる範囲を設定します |
コメント | 自作関数の説明を記載しておきます |
参照範囲 | LAMBDA関数で自作関数の数式を定義します |
項目を入力したら「OK」ボタンをクリックして名前の編集ダイアログを閉じます。
それでは定義した自作関数を使用した数式をセルに入力して結果を確認してみます。
作成した「足し算」関数の引数に「A1」と「B1」を指定した数式を「C1」に入力しました。
数式を入力した「C1」に「1 + 2」の足し算関数の結果の値「3」が表示されました。
LAMBDA関数で再帰はできるか
少し気になったのでLAMBDA関数を使用して再帰関数を定義できるかどうか試してみました。
定義した「XをN回足す」関数は、その定義の中で自分自身「XをN回足す」を利用する再帰関数です。
以下はC列にLAMBDA関数で作成した再帰関数にA列、B列のセルの値を引数に指定した数式を入力しています。
再帰が深い場合の結果は#NUM!
エラーになりましたがLAMBDA関数で再帰関数を定義して使用することができることが確認できました。
まとめ
LAMBDA関数を使用することで数式のみでできる範囲の自作関数をVBAを使用せずに作成することができるので便利です。
実際に使用してみた感想としては名前の編集ダイアログでの入力は少し入力しづらいと思いました。ただLAMBDA関数の入力を補助するアドオンがあるようです。
また「MAP関数」、「REDUCE関数」、「SCAN関数」などのLAMBDA関数を引数に取ることができる関数が追加されているようなので、それらの関数とLAMBDA関数を組み合わせた使用も試してみようと思いました。