【Excel】LAMBDA関数でオリジナル関数を作成する方法

【Excel】LAMBDA関数でオリジナル関数を作成する方法
🛡️ 超解決

日々の業務で同じような計算式を何度も入力する作業に手間取っていませんか。ExcelのLAMBDA関数を使うと、独自の関数を簡単に作成できます。この機能を利用すれば、複雑な計算式をシンプルな名前で呼び出せるようになります。この記事では、定型業務を効率化するカスタム関数の作成方法を習得できます。

【要点】LAMBDA関数でオリジナル関数作成のポイント

  • LAMBDA関数を定義: 複雑な計算式をシンプルな引数と式で構成するオリジナル関数として定義できます。
  • 名前の管理で登録: 定義したLAMBDA関数に名前を付けて、Excelブック全体で使えるカスタム関数として登録します。
  • 数式の再利用と効率化: 登録したオリジナル関数は、VBAを使わずに、あらゆるセルで繰り返し利用し業務を効率化できます。

ADVERTISEMENT

LAMBDA関数が業務効率を高める仕組み

LAMBDA関数は、Excelで独自のカスタム関数を作成できる画期的な機能です。これまでVBAを使わなければ実現できなかった、計算式を名前として登録し再利用する操作が、関数のみで可能になります。これにより、複数のセルやシートで繰り返し使う複雑な計算ロジックを簡素化できます。

LAMBDA関数は、引数と計算式の本体で構成されます。例えば、「販売価格に消費税を加算する」といった定型的な計算を、税率を引数として受け取る独自の関数として定義できます。一度定義してしまえば、あとは関数の名前と引数を指定するだけで、同じ計算をどこでも実行できます。

この機能の導入により、数式の可読性が向上します。長い計算式が並んでいたセルも、ユーザーが定義したわかりやすい名前の関数に置き換わるため、内容を素早く理解できます。また、数式を修正する場合も、定義元の一箇所を編集するだけで、その関数を使っているすべての箇所に修正が反映されます。

ただし、LAMBDA関数はExcel for Microsoft 365でのみ利用できます。Excel 2019やExcel 2021などの永続ライセンス版では利用できません。利用環境に注意してください。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

LAMBDA関数でオリジナル関数を作成する手順

ここでは、特定の商品の単価と数量から合計金額を算出し、さらに割引率を適用するカスタム関数を作成する手順を解説します。複雑な計算式をLAMBDA関数として定義し、名前の管理に登録しましょう。

  1. LAMBDA関数で計算式を記述する
    まず、ExcelのセルにLAMBDA関数を記述します。例えば、単価と数量、割引率を引数として受け取り、割引後の合計金額を計算する式を作成します。引数は最大253個まで指定できます。
    例: `=LAMBDA(単価,数量,割引率,(単価*数量)*(1-割引率))`
  2. 作成したLAMBDA関数をテストする
    LAMBDA関数単体では、末尾に引数を直接指定しない限りエラーが表示されます。定義した関数が正しく動作するか確認するため、一時的に末尾にテスト用の引数値を指定して実行します。このテストが完了したら、末尾の引数部分は削除してください。
    例: `=LAMBDA(単価,数量,割引率,(単価*数量)*(1-割引率))(100,5,0.1)` (テスト用: 単価100、数量5、割引率10%)
  3. 完成したLAMBDA関数をコピーする
    テストが完了し、正常に動作することを確認したら、末尾のテスト用引数を削除したLAMBDA関数をコピーします。コピーする範囲は `=LAMBDA(…)` の部分全体です。
    例: `=LAMBDA(単価,数量,割引率,(単価*数量)*(1-割引率))`
  4. 「名前の管理」を開く
    Excelのリボンメニューから「数式」タブを選択します。次に、「定義された名前」グループ内にある「名前の管理」をクリックしてダイアログを開きます。
  5. 新しい名前を定義する
    「名前の管理」ダイアログが表示されたら、「新規」ボタンをクリックします。新しい名前を定義するためのダイアログが開きます。
  6. 名前と参照範囲を設定する
    「新しい名前」ダイアログで以下の項目を設定します。
    ・「名前」: カスタム関数として呼び出す名前を入力します。例: `割引後合計金額`
    ・「コメント」: 関数の説明を記入します。例: `単価、数量、割引率から割引後の合計金額を計算します`
    ・「参照範囲」: ステップ3でコピーしたLAMBDA関数をここに貼り付けます。
  7. 名前の定義を完了する
    すべての設定が完了したら、「OK」ボタンをクリックして新しい名前を登録します。これでカスタム関数がExcelブック内で利用可能になります。「名前の管理」ダイアログを「閉じる」ボタンで閉じます。
  8. カスタム関数をセルで使用する
    定義したカスタム関数は、通常のExcel関数と同じようにセルに入力して使えます。例えば、A1に単価、B1に数量、C1に割引率が入力されている場合、`=割引後合計金額(A1,B1,C1)` と入力すると計算結果が表示されます。

LAMBDA関数利用時の注意点とトラブル対処

LAMBDA関数を効果的に使うためには、いくつかの注意点があります。これらを知ることで、トラブルを未然に防ぎ、スムーズな運用が可能になります。

引数の数と計算式の不整合が発生してしまう

LAMBDA関数で定義した引数の数と、実際の計算式内で使われる引数の数が一致しない場合、エラーが発生します。例えば、3つの引数を定義しているのに、計算式内で2つしか参照していない、または4つ参照しているようなケースです。

  1. 原因
    LAMBDA関数内で宣言された引数と、関数本体で利用される引数が異なることが原因です。
  2. 対処法
    LAMBDA関数の最初の部分で宣言した引数の数と、関数本体の計算式で参照している引数の数を正確に一致させてください。引数の名前も確認し、スペルミスがないか確認が必要です。

名前の管理での設定ミスが発生する

「名前の管理」ダイアログでLAMBDA関数を登録する際、参照範囲に誤った数式を入力したり、名前の重複が発生したりする場合があります。

  1. 原因
    コピーしたLAMBDA関数が途中で途切れていたり、誤って修正してしまったりすることが原因です。また、すでに存在する名前と同じ名前を付けてしまうと競合が発生します。
  2. 対処法
    「数式」タブの「名前の管理」から、定義した名前を選択し「編集」をクリックします。参照範囲が正しく、完全なLAMBDA関数になっているか確認してください。名前が重複していないかも確認し、必要であれば別の名前を設定しましょう。

Excelのバージョンが非対応の場合

LAMBDA関数は、Excel for Microsoft 365で提供される機能です。それ以前のバージョンや永続ライセンス版では利用できません。

  1. 原因
    利用しているExcelのバージョンがLAMBDA関数に対応していないためです。
  2. 対処法
    Excel for Microsoft 365を利用しているか確認してください。もし永続ライセンス版や古いバージョンを利用している場合は、Microsoft 365へのアップグレードを検討するか、VBAユーザー定義関数での代替手段を検討する必要があります。

ADVERTISEMENT

LAMBDA関数とVBAユーザー定義関数の比較

カスタム関数を作成する方法として、LAMBDA関数とVBAのユーザー定義関数 User Defined Function、UDF があります。それぞれの特徴を理解し、状況に応じて使い分けることが重要です。

項目 LAMBDA関数 VBAユーザー定義関数 UDF
開発環境 Excelシートと「名前の管理」 VBAエディター
習得難易度 Excel関数が理解できていれば比較的容易 VBAの知識が必要
セキュリティ セキュリティ警告なし マクロ有効ブックとして保存する必要があり、セキュリティ警告が表示される場合がある
適用範囲 そのExcelブック内 そのExcelブック内、または個人用マクロブックに保存すれば全ブックで利用可能
データ型 数値、文字列、ブール値、配列、エラー値 VBAで定義可能なすべてのデータ型を扱える
複雑な処理 Excel関数で記述できる範囲に限られるが、LET関数や再帰処理と組み合わせると高度な処理も可能 ループ処理、条件分岐、外部ファイルとの連携など、高度で複雑な処理が可能
デバッグ 数式バーでの試行錯誤 VBAエディターのデバッグ機能
対応バージョン Excel for Microsoft 365のみ Excel 2007以降のすべてのバージョンで利用可能

まとめ

この記事では、LAMBDA関数を使ってExcelでオリジナル関数を作成する手順を詳しく解説しました。複雑な計算式をシンプルな名前付き関数として登録し、業務の効率化を図れるようになったはずです。今後は、LAMBDA関数をLET関数と組み合わせることで、より読みやすく高性能なカスタム関数を作成できます。この新しいスキルを活かし、日々のExcel作業をさらにスマートにしていきましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】