先の「Excel LAMBDA関数」記事では Microsoft 365版Excelなどで使える「LAMBDA」関数についてご紹介しました。
今回は、Googleスプレッドシートで使える、同じ名前の「LAMBDA」関数についてご紹介します。

少し前にアップした「Googleスプレッドシート 名前付き関数」記事では「名前付き関数」機能についてご紹介しました。
この名前付き関数で作成された関数には引数も与えることができ、もはやこれだけで十分というきもします。

それでは、LAMBDA関数と名前付き関数との違いは何でしょう。

名前付き関数は、スプレッドシートで使う数式に名前と引数を付け、その名前で数式を呼び出す機能です。
詳しくは Googleのヘルプページ「名前付き関数の作成と使用」をご参照ください。

LAMBDA関数は、変数(パラメーター)と計算方法を指定しておき、変数に数値を与えることで計算を実行できる関数です。
Googleのヘルプページ「LAMBDA関数」もご参照ください。

う~ん、なんだか分かりにくいですね。

一連の記事と同じように円の面積を求める関数を作ってみます。(下図)

 

上図の B2セルには「=CIRCLE_AREA(A2)」、その関数名を漢字表記にしたものが B4セルの「=円の面積(A4)」という式です。
これらは上記「Googleスプレッドシート 名前付き関数」記事でご紹介したときの名前付き関数の例です。

一方、B6セルには「=LAMBDA(radius,PI()*radius*radius)(A4)」と入力しています。
こちらがLAMBDA関数です。

名前付き関数は、カプセル化された関数という言い方も出来ます。
(上例は簡単過ぎますが)長くなった複雑な数式でも、分かりやすい名前を付けて可読性を高めたり、再利用性を高めたりすることができます。
欠点は、その演算過程や内容が数式バーでは確認できず、改めて名前付き関数を編集モードで見る必要があることです。

LAMBDA関数は基本的に単独使用する時は、この例のように末尾に引数を伴って使います。
数式中で使う変数「radius」はこの関数内だけで使用するものですが、数式バーにはそれらも含め表示され確認することができます。

できるだけ深みに嵌らない範囲で説明しようとしたため明快な違いを言い表せずにモヤモヤさせていますね。
通常、数式に名前付けして可読性を高めるという使い方なら、名前付き関数で十分です。
元々、スプレッドシートでは名前付き関数が先行し、LAMBDA関数は Excelの LAMBDA関数の後追いで追加されたとも言えます。
でも、例えば動的なループ処理や条件付き書式などで使おうとすると名前付き関数ではできず、LAMBDA関数のお世話になります。
これらの高度な使い方については機会があれば別途お話します。