VBA不要!ExcelのLAMBDA関数で再利用できるカスタム関数を作成する方法

ExcelのLAMBDA関数を使えば、VBA(マクロ)に頼ることなく、再利用可能なオリジナル関数を簡単に作成できます。Excelには数多くの組み込み関数が用意されていますが、実際の業務では、データや作業内容に合わせた独自の関数が必要になる場面も少なくありません。LAMBDA関数を活用すれば、複雑な計算をひとつの関数としてまとめられ、ブック全体の使い勝手を大きく向上させることができます。
この記事では、LAMBDA関数を使ってカスタムExcel関数を作成する手順を、具体例とともにわかりやすく解説します。
LAMBDA関数とは?
LAMBDA関数は、名前を付けて再利用できるカスタム関数を作成するための関数です。Excel 2021以降のバージョンで利用可能になりました。引数をパラメータとして受け取り、指定した計算式に基づいて結果を返す仕組みは、通常の組み込み関数とまったく同じです。これまで長くて複雑だった数式を、ひとつのシンプルな関数に置き換えられるのが大きな魅力です。
構文:
=LAMBDA(パラメータまたは計算式,...)
- パラメータ: カスタム関数への入力値です。文字列や数値を指定でき、最大253個まで設定できます。
- 計算式: 結果を求めるためのExcelの数式やロジックです。必ず最後の引数として指定する必要があります。この引数は省略できません。
カスタム関数を作成したら、名前を付けて保存することで、ブック内のどこからでも呼び出して使えるようになります。
LAMBDA関数でカスタム関数を作成する手順
ここでは、小規模なネットショップを運営していることを想定し、「税込み売上額」を頻繁に計算するケースを例にします。毎回同じ数式を入力する代わりに、LAMBDA関数で再利用可能なカスタム関数を作ってみましょう。
ステップ1:LAMBDA関数を作成する
商品価格に対して10%の消費税を課す場合を考えます。税込価格を計算するLAMBDA関数は次のように作成します。
- price: 売上金額を受け取る入力パラメータです。
- price*1.1: 価格に10%の税金を加算して税込価格を計算する部分です。
ステップ2:LAMBDA関数を直接使ってみる
まずは、作成したLAMBDA関数をセルに直接入力して動作を確認します。
- セルF2を選択し、次の数式を入力します。
=LAMBDA(price,price*1.1)(100)
この数式は「110」を返します。つまり、100に10%の税金を加えた金額です。
また、最新バージョンのExcelでは、スピル機能により範囲をまとめて処理することもできます。
=LAMBDA(price,price*1.1)(E2:E13)
この数式は、選択した範囲の全商品について税込合計金額を一括で返します。

ステップ3:カスタム関数に名前を付ける
- 数式タブを開き、名前の定義を選択します。
- 名前に「Price_with_Tax」と入力します。
- 参照範囲ボックスにLAMBDAの数式を貼り付け、「OK」をクリックします。

ステップ4:カスタム関数を使用する
カスタム関数を登録すれば、あとは組み込み関数と同じように使えます。
- セルG2を選択し、次の数式を入力します。
この関数は「110」(100+100の10%)を返します。

LAMBDA関数の実践的な活用例
例1:面積を計算する関数
建築関連の業務では、部屋や物件の面積を平方フィート単位で計算する機会が多くあります。長さ×幅で長方形の面積を求めるカスタム関数を作成してみましょう。
=LAMBDA(length, width, length * width)
このLAMBDA関数は、長さと幅を入力として受け取り、その積を返します。
再利用しやすいように、「Area_Square_Feet」という名前を付けて登録しましょう。あとは任意のセルで次のように呼び出せます。
20×15を計算し、結果「300」が返されます。

例2:割引+税込みの最終価格を計算する関数
LET関数とLAMBDA関数を組み合わせれば、割引と税金を順番に適用して最終価格を算出するカスタム関数も作れます。
=LAMBDA(price, discountRate, taxRate, LET( discountedPrice, price * (1 - discountRate), finalPrice, discountedPrice * (1 + taxRate), finalPrice ) )
- LAMBDA: 価格・割引率・税率の3つを入力変数として受け取ります。
- LET: 次の変数を定義します。
- discountedPrice: 割引適用後の価格を計算します。
- finalPrice: 割引後の価格に税金を加算します。
- 戻り値: 計算されたfinalPriceを出力します。
名前マネージャーで「CalculateFinalPrice」という名前を付けましょう。あとはセルH2などで次のように使用できます。
=CalculateFinalPrice(100, 0.05, 0.1)
この数式は、5%の割引と10%の税金を適用した後の最終価格を返します。

よくあるエラーとトラブルシューティング
- #CALC!エラー: 関数の呼び出し方や入力値が正しくない場合に表示されます。末尾に実際の引数(入力値)を付けてテストしているか確認しましょう。
- #NAME?エラー: 関数名が正しくない場合に表示されます。名前マネージャーで登録した名前と、入力した名前が一致しているか確認してください。
まとめ
LAMBDA関数を使えば、VBAなしでExcelに再利用可能なカスタム関数を追加できます。独自の関数を作りたいExcelユーザーにとって、LAMBDAはまさにゲームチェンジャーとなる存在です。本記事の手順に従えば、初心者でも簡単にカスタム関数を作成できます。数式はLAMBDAの計算に組み込む前に必ずテストし、基本から応用までさまざまなカスタム関数づくりに挑戦してみてください。
-
Excelの基本操作:1列・複数列のデータ並べ替え(ソート)をわかりやすく解説
Excelの大きな魅力のひとつは、データをさまざまな視点から自由に操作・表示できることです。その中でも、シンプルでありながら非常に強力なのが「並べ替え(Sort)」機能です。 昇順・降順といった基本的な並べ替えはもちろん、複数の条件を組み合わせてデータをグループ化して表示したり、行単位の整合性を保ちながら整理したり、表形式のデータをアルファベット順に整えたりと、Excelでのデータ並べ替えは必ず身につけておきたい基本スキルです。 表形式のデータの並べ替えにおいて、Excelほど優れたソフトウェアはほかにありません。並べ替えの操作は、シンプルで手軽なものから、高度で複雑なものまで幅広く対応できま
-
SCCM(Configuration Manager)を有効化してOffice 365の更新プログラムを展開する方法
Microsoft System Center Configuration Manager(SCCM)は、強力なエンタープライズ管理ツールです。綿密な計画のもとで導入すれば、管理業務の負荷や総所有コスト(TCO)を大幅に削減できます。本記事では、Configuration ManagerがOffice 365クライアントパッケージの通知を受け取れるように設定する手順を詳しく解説します。 Configuration Managerは、多くのMicrosoft技術やソリューションとの連携にも対応している点が大きな魅力です。例えば、以下のような統合が可能です。 Microsoft Intune: