紹介したい処理と関数があるのですが、それを理解するためには、先に LAMBDA関数 を知っておいたほうがよさそうなので、今回は LAMBDA 関数をご紹介します。
Excel には、SUM 関数や IF 関数、XLOOKUP 関数など、多くの関数が用意されていますが、LAMBDA 関数を使うと、ワークシート上で数式を使って独自の関数を作成できます。
関数とは、行う処理があらかじめ定義された計算の仕組みです。
LAMBDA 関数を使うと、自分で行う処理を定義して関数を作成できるようになります。そして、そのような関数が必要になる場面もあります。
今回は、LAMBDA 関数がどのように処理を行うのか、その基本を見ていきましょう。
LAMBDA 関数の構文
LAMBDA 関数は、「値 (パラメーター) 」と「パラメーターの値を使って行う処理 (計算) 」を指定して、関数を作成します。
=LAMBDA (パラメーター , 処理(計算))
| パラメーター | 受け取る値を入れるための入れ物につける名前を指定する。パラメーターの名前は「A」や「売上」など自由に付けられるが、「A1」のようなセル番地と一致する名前や、数字から始まる名前は使用できない。 |
| 処理(計算) | パラメーターに渡された値を使って、どのような処理 (計算) を行うのかを指定する。 |
たとえば、「=LAMBDA(A , A*10)」として、値を 10 倍する関数を作ります。
LAMBDA 関数では値をパラメーターに渡すことで、「=LAMBDA(A , A*10)」の処理が実行されるため、この時点で [Enter] で確定しても #CALC! エラーが返ります。

パラメーターと値
LAMBDA 関数では値をパラメーターに渡すことで、「=LAMBDA(A , A*10)」の処理が実行されます。
では、A にはどのように値を渡すのでしょう。
たとえば、A に「5」を渡したいのなら、「=LAMBDA(A , A*10)(5)」のように「 (5) 」として、LAMBDA の数式の外側に実際に渡す値を指定できます。
LAMBDA 関数では「 (5) 」などのように値を指定することで、「=LAMBDA(A , A*10)」の処理が実行され、「50」が返ります。


なお、渡すことができるのは、数値だけではなく、「=LAMBDA(A , A*10)(A1)」のように、セル参照を指定して渡すこともできます。たとえば、セル A1 に「2」が格納されていたら、結果は「20」が返ります。

複数のパラメーターの指定
パラメーターは複数指定できます。
たとえば、「=LAMBDA(単価 , 数量 , 単価*数量)(1000,5)」とすると、「単価」と「数量」の 2 つのパラメーターを用意して「単価」に「1000」、「数量」に「5」を指定できており、「1000*5」が実行されて、「5000」が返ります。


セル参照でも同じです。
「=LAMBDA(単価 , 数量 , 単価*数量)(A2,B2)」の場合、セル A2 と B2 の値を使って掛け算できます。

なお、パラメーターの数と渡す値の数は、一致している必要がある、という点に注意しましょう。
たとえば、「=LAMBDA(A,A*10)」のようにパラメーターが 1 つしかない LAMBDA 関数に対して、 「=LAMBDA(A,A*10)(10,20,30)」のように 3 つの値を渡すことはできません。
パラメーターが 1 つなら渡せる値も 1 つ、3 つの値を受け取りたいのなら、LAMBDA 関数も 3 つのパラメーターを定義する必要があります。

複数の値を順番にパラメーターに渡していきたい場合は、ほかの関数と組み合わせて使う必要があるので、それはまた改めて書きます。
名前の管理と関数の登録
LAMBDA 関数で作る関数は、その場だけで使う「名前のない関数」です。
名前を付けて登録しておいて、呼び出して繰り返し使いやすくするには、「名前の定義」で数式に名前を付けて登録します。

登録した関数に値を渡すと処理結果が返ります。

今回は、LAMBDA 関数でどのように処理を定義するのか、その基本を紹介しました。
これくらいならわざわざ作らなくてよいのでは?と思うことでしょう。それはごもっともだけれど、基本は大切。
LAMBDA 関数が本領を発揮するのは MAP 関数や BYCOL 関数などと組み合わせたときです。
これらを理解するための土台として、今回の基本の内容を押さえておきましょう。
石田 かのこ











