2022年2月8日にExcelのLAMBDA関数(ラムダ関数)の一般提供が開始されました。
LAMBDA関数を使うことで、Excelブック内で使える独自の関数を作ることができます。
これまでも、独自関数はVBAなどで作成できましたが、LAMBDA関数の実装により、VBAを使用しなくても作成できるようになりました。
この記事ではLAMBDA関数の基本的な使い方と、実用例を紹介します。
- VBAを使わずに、ブック内で使える独自の関数を作れる
- ペルパー関数を一緒に使うことで、その関数を繰り返し実行できる
参考:Microsoftのサポートページ「LAMBDA関数」
LAMBDA関数(ラムダ関数)の基本的な使い方
LAMBDA関数(ラムダ関数)を使う際は、
- パラメータ(代入する値の名前)と計算式から構成される関数を作成
- その関数を呼び出すための名前(表示名)を設定
- 設定した表示名で呼び出す(セル内で使用する)
という流れになります。
書式と引数は以下の通りです。
=LAMBDA([パラメータ1, パラメータ2, …,] 計算)
引数 | 内容 |
---|---|
パラメータ | セル参照、文字列、数値など、関数に渡す値です。 最大 253個の引数を設定できます。省略も可能です。 |
計算 | 関数の結果として実行して返す計算式。 これは最後の引数で、結果を返す必要があります。 この引数は必須です。 |
実際に使用する際の流れは以下のとおりです。
LAMBDA関数(ラムダ関数)の実用例 基本編
続いて、LAMBDA関数を実用例を紹介します。
今回は、日別の「検索回数」と「クリック数」のデータからクリック率(CTR)を計算する時にLAMBDA関数を使って見たいと思います。
パラメーター名と計算式、引数の設定
最初にLAMBDA関数でクリック率を計算してみます。
この式を解説すると、
- 表示回数(imp)とクリック(click)の2つをパラメータとして設定
- click / imp でクリック率を算出する計算式を設定
- LAMBDA関数の後にB2とC2の値を引数(代入する値)に設定
となります。
他のサンプルではパラメータを「a」や「b」などとしていますが、
実際に使用する際は、パラメータ名は分かりやすい名前を設定する
ことをおすすめします。
上記内容をセルに入力すると、クリック率が計算されます。
オリジナル関数としての「名前」の設定方法
続いて、その関数を呼び出すための名前(表示名)の設定方法を紹介します。
まず最初に、Excelのメニューで[数式] > [名前の管理] を選択します。
表示される設定画面から[新規作成]を選択します。
その後に表示されるフォーム画面にて、名前と関数内容を設定します。
参照範囲にセルではなく、関数を直接記載します。
[OK]を押せば、ここで指定した「CTR」の関数が、設定したExcel上で使用できるようになります。
LAMBDA関数(ラムダ関数)のヘルパー関数の活用方法
続いて、LAMBDA関数のヘルパー関数を活用した、より実践的な利用方法を紹介します。
ヘルパー関数は、LAMBDA関数自体を引数として設定することが出来る関数です。
ものすごく簡単に言うと、行ごとや列ごとなどの単位で、LAMBDA関数をまとめ実行することができます。
なお、Googleスプレッドシートに慣れている人に対しては、
Arrayformula関数とほぼ同じ処理をExcelでも出来るようになった
という説明でお分かりいただけると思います。
…
定義だけの説明だと、かなり分かりづらいと思いますので、実用例を紹介したいと思います。
先程と同様、日毎の検索回数とクリック数のデータを使います。
ここではMAP関数 を使用して、日毎のクリック率をまとめて表示させる、ということをやってみます。
= MAP (配列,LAMBDA関数)
引数 | 内容 |
---|---|
配列 | まとめて処理したい配列。配列は「,」でつないで複数設定可能。 Excelで使用する場合は、セルの範囲を設定することがほとんどです。 |
計算 | 関数の結果として実行して返す計算式。 これは最後の引数で、結果を返す必要があります。 この引数は必須です。 |
実際の関数の設定内容は、以下の通りとなります。
1つ目の引数と、2つ目の引数で、CTRを計算したいセル範囲を指定します。
指定するセル範囲に含まれるデータの数は、同数に揃える必要があります。
これを実行すると、
となります。
配列毎の処理が行えるようになると、
- 関数設定が1箇所だけなので、データが増えた時の計算のコピペ漏れやミスがなくなる
- 処理が早くなる
といったメリットがありますので、活用出来る箇所がれば、導入を検討されるのが良いかと思います。
まとめ
最近のExcelは、LAMBDA関数の実装だけでなく、UNIQUE関数、FILTER関数、QUERY関数など、Googleスプレッドシートに追従してきているように感じます。
Excelもスプレッドシートも両方とも便利なので、同じように使えるようになると良いですね。
スプレッドシートに関連する記事もまとめていますので、ぜひ御覧ください。