Microsoft365などのExcelで利用できるLAMBDA関数は、VBAを利用せずにExcelで独自の関数を作成できる関数です。複雑な計算や繰り返し処理を一度だけ定義すれば、ブック内で再利用することも可能で、数式のメンテナンス性も向上します。
LAMBDA関数をブック内で再利用するための手順について紹介します。
内容:
動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2411)です。
アウトプットイメージ
作成したLAMBDA関数をブック内で再利用というのは、次のようにユーザー定義の関数を作成し、ブック内で何度も利用できるようにすることです。
この事例では、会社名の表記ゆれを修正するユーザー定義関数を作成し、A列の値をユーザー定義関数で処理、B列に表示しています。
LAMBDA関数をブック内で再利用する手順
基本手順
1.LAMBDA関数の作成
まず、再利用したいLAMBDA関数を作成します。
シンプルなLAMBDA関数の事例は以下です。
=LAMBDA(x, y, x + y)
この関数は、2つの引数を受け取り、それらを加算します。
実務面では、このような単純なユーザー定義関数を作成する必要はなく、手順の理解用です。
2.名前の定義でユーザー定義の関数を作成
「数式」タブの「名前の定義」をクリックし、「新規作成」をクリックします。
「名前」欄に適当な名前(事例では、”足し算”)と、「参照範囲」欄に上述のLAMBDA関数を入力します。
3.ブック内の任意のセルで関数の呼び出し
ユーザー定義関数を利用したい場面で、標準の関数と同様に呼び出します。
上記事例の場合は、以下のように記載すると、2つの値の足し算が計算されます。
=AddNumbers(5, 10)
以上が基本手順です。
具体的な活用例
例えば、少し難解な数式の例として、【Excel】REDUCE関数とLAMBDA関数の活用例(繰り返しで長い数式の簡素化) - shikumika’s diaryでは、REDUCE関数も含めて
= REDUCE(A2, {"㈱","(株)","(株)","(株)","(株)"}, LAMBDA(置換前,置換文字, SUBSTITUTE(置換前, 置換文字, "株式会社")))
という数式で、セルA2の値を置換する数式を作成しています。
要は、指定された置換対象の文字列を検索し、置換を繰り返す関数です。
この数式は、REDUCE関数なので既にLAMBDAがREDUCEの括弧内に存在する数式です。
この数式を汎用的なユーザー定義関数とするため、以下のように修正します。
=LAMBDA(text, REDUCE(text, {"㈱","(株)","(株)","(株)","(株)"}, LAMBDA(置換前,置換文字, SUBSTITUTE(置換前, 置換文字, "株式会社"))))
セルA2を「text」という変数にし、LAMBDA関数を外側に追加しています。
こうすることで、textを変数とする数式になります。
この数式を「名前の定義」で参照範囲に入力したのが以下です。
なお、コメント欄は、数式内容を示しているだけの参考情報です。
これで冒頭のアウトプットイメージのようにユーザー定義関数をブック内で活用でき、ます。
注意点
他者とExcelファイルを共有し、他者が数式のメンテナンスをする必要がある場合は、ユーザー定義の関数を作成する手順もあわせて共有が必要です。
以上、作成したLAMBDA関数をブック内で再利用する方法でした。