【Excel】LAMBDA関数でオリジナル関数を作る!Excelのカスタム関数を名前の管理で登録する方法

【Excel】LAMBDA関数でオリジナル関数を作る!Excelのカスタム関数を名前の管理で登録する方法
🛡️ 超解決

Excelで繰り返し使う計算や複雑な処理を、独自の関数として登録できたら便利だと感じたことはありませんか。LAMBDA関数を使えば、自分だけのカスタム関数を作成し、Excelの標準関数のように呼び出せます。この記事では、LAMBDA関数でオリジナル関数を作成し、「名前の管理」機能を使って登録する手順を解説します。これにより、複雑な計算や繰り返し作業の効率が大幅に向上します。

【要点】LAMBDA関数でオリジナル関数を作成し、名前の管理で登録する手順

  • LAMBDA関数の基本構文: 引数と計算式を定義して、カスタム関数のロジックを作成します。
  • 名前の管理への登録: 作成したLAMBDA関数を「名前の管理」機能で名前を付けて保存します。
  • カスタム関数の呼び出し: 登録した名前をExcelのセルで関数のように呼び出して利用します。

ADVERTISEMENT

LAMBDA関数でカスタム関数を作成する仕組み

LAMBDA関数は、Excelで独自の関数を定義できる強力な機能です。これにより、複雑な数式を一度定義しておけば、何度でも簡単に再利用できるようになります。例えば、複数の条件を組み合わせた計算や、特定の文字列処理などを関数化できます。

この関数は、引数(入力値)と、その引数を使って実行される計算式で構成されます。定義したLAMBDA関数は、Excelの「名前の管理」機能と組み合わせることで、あたかもExcel標準関数のようにワークシート上で直接呼び出せるようになります。

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

LAMBDA関数でオリジナル関数を定義する手順

LAMBDA関数でカスタム関数を作成するには、まずその関数の引数と計算式を定義します。ここでは例として、2つの数値を掛け合わせ、さらに10を加える簡単なカスタム関数「MY_MULTIPLY_ADD」を作成してみましょう。

  1. 数式タブを開く
    Excelのリボンメニューから「数式」タブを選択します。
  2. 「名前の管理」を選択
    「定義された名前」グループにある「名前の管理」ボタンをクリックします。
  3. 「新規作成」ボタンをクリック
    「名前の管理」ダイアログボックスが表示されたら、「新規作成」ボタンをクリックします。
  4. 「名前」を入力
    「新しい名前」ダイアログボックスの「名前」欄に、作成したいカスタム関数の名前を入力します。ここでは「MY_MULTIPLY_ADD」と入力します。名前は英数字で、最初の文字は英字にする必要があります。
  5. 「スコープ」を選択
    「スコープ」は、通常「ワークブック」のままで問題ありません。これは、作成した関数がブック全体で利用可能になることを意味します。
  6. 「参照範囲」にLAMBDA関数を入力
    「参照範囲」の入力欄に、以下のLAMBDA関数の構文でカスタム関数を定義します。

    構文: =LAMBDA(引数1, 引数2, ..., 計算式)

    今回の例では、2つの引数(例: x, y)を取り、それらを掛け合わせて10を加える関数なので、以下のように入力します。

    =LAMBDA(x, y, (x*y)+10)
  7. 「OK」をクリック
    入力が完了したら、「OK」ボタンをクリックしてダイアログボックスを閉じます。
  8. 「閉じる」をクリック
    「名前の管理」ダイアログボックスも「閉じる」ボタンをクリックして閉じます。

作成したカスタム関数をExcelシートで利用する

LAMBDA関数で定義したカスタム関数は、「名前の管理」に登録されたことで、Excelのセルから直接呼び出せるようになります。ここでは、先ほど作成した「MY_MULTIPLY_ADD」関数を使って、実際の計算を行ってみましょう。

  1. セルにカスタム関数を入力
    任意のセル(例: C1セル)に、作成したカスタム関数の名前と引数を指定して入力します。例えば、A1セルに5、B1セルに3が入力されている場合、C1セルに以下のように入力します。

    =MY_MULTIPLY_ADD(A1, B1)

    あるいは、直接数値を指定して

    =MY_MULTIPLY_ADD(5, 3)

    と入力することも可能です。
  2. Enterキーを押す
    数式を入力したらEnterキーを押します。
  3. 結果の確認
    セルに計算結果が表示されます。この例では、(5*3)+10 = 25 が表示されます。

このように、一度定義したカスタム関数は、標準関数と同じように利用できるため、複雑な計算式を何度も入力する手間が省けます。引数としてセルの参照を指定すれば、そのセルの値が変わるたびに結果も自動的に更新されます。

ADVERTISEMENT

より複雑なカスタム関数を作成する例

LAMBDA関数は、単純な計算だけでなく、より複雑なロジックを持つ関数も作成できます。ここでは、文字列の長さを取得し、その長さが10文字以上であれば「長い」、そうでなければ「短い」と判定するカスタム関数「CHECK_STRING_LENGTH」を作成してみましょう。

CHECK_STRING_LENGTH関数の定義

まず、「名前の管理」を開き、新規作成から以下の設定を行います。

  1. 名前: CHECK_STRING_LENGTH
  2. スコープ: ワークブック
  3. 参照範囲: =LAMBDA(text, IF(LEN(text)>10, "長い", "短い"))

このLAMBDA関数は、引数 `text`(文字列)を受け取り、`LEN(text)`で文字列の長さを取得します。その長さが10より大きい場合は「長い」を、そうでない場合は「短い」を返します。IF関数とLEN関数を組み合わせています。

CHECK_STRING_LENGTH関数の利用例

この関数をセルで利用するには、以下のように入力します。

  1. セルにカスタム関数を入力
    A2セルに「これは非常に長い文字列です」と入力し、B2セルに以下の数式を入力します。

    =CHECK_STRING_LENGTH(A2)
  2. Enterキーを押す
    Enterキーを押すと、B2セルには「長い」と表示されます。
  3. 別の例
    A3セルに「短い」と入力し、B3セルに

    =CHECK_STRING_LENGTH(A3)

    と入力すると、「短い」と表示されます。

カスタム関数作成時の注意点とトラブルシューティング

LAMBDA関数と「名前の管理」を使ったカスタム関数作成は非常に便利ですが、いくつか注意すべき点や、発生しうるトラブルがあります。これらを理解しておくことで、よりスムーズにカスタム関数を利用できます。

名前の管理でよくある失敗パターン

カスタム関数を登録する際に、最もよくある失敗は「名前の管理」ダイアログボックスでの入力ミスです。

  • 名前の命名規則違反: 関数名がExcelの既存関数名と重複していたり、数字で始まっていたりするとエラーになります。名前はユニークで、英字で始める必要があります。
  • LAMBDA構文の間違い: 引数の数と計算式が正しく定義されていない場合、関数が正しく動作しません。特に、引数の数と、計算式で参照される引数の数が一致しているか確認が必要です。
  • 参照範囲の誤り: 「参照範囲」に直接数式を入力する際に、意図しないセルを参照したり、構文エラーが発生したりすることがあります。数式バーで正確に入力されているか確認しましょう。
  • スコープの誤解: 特定のシートでのみ使いたい場合に「ワークブック」スコープを選択すると、意図せず他のシートでも利用可能になってしまいます。

これらのミスを防ぐためには、数式をテキストエディタなどで事前に作成・確認してから「参照範囲」に貼り付けるのが有効です。また、Excelの数式オートコンプリート機能も役立ちます。

カスタム関数が期待通りに動作しない場合

登録したカスタム関数がセルでエラーになったり、期待通りの結果を返さなかったりする場合、以下の点を確認してください。

  • 引数の型: 関数に渡している引数のデータ型が、LAMBDA関数で定義した引数の型と合っているか確認します。例えば、数値を期待する関数に文字列を渡すとエラーになることがあります。
  • 数式の論理: LAMBDA関数内の計算式自体の論理が正しいか、再度確認します。IF関数や論理演算子などが正しく使われているか、ステップごとに検証してみましょう。
  • Excelのバージョン: LAMBDA関数は比較的新しい機能です。Excel 2021やMicrosoft 365で利用可能ですが、それ以前のバージョンでは利用できません。
  • 名前の管理での更新: 「名前の管理」で関数定義を修正した場合、その変更が正しく反映されているか確認が必要です。修正後、一度Excelを再起動すると反映される場合もあります。

デバッグの基本は、カスタム関数を直接セルに入力するのではなく、「数式」タブの「数式の評価」機能を使って、LAMBDA関数内の各ステップの計算結果を確認することです。これにより、問題箇所を特定しやすくなります。

LAMBDA関数と名前の管理の活用シーン

LAMBDA関数と「名前の管理」を組み合わせることで、Excelでの作業効率を飛躍的に向上させることができます。以下に具体的な活用シーンをいくつか紹介します。

繰り返し行う複雑な計算の関数化

例えば、複数の税率計算を組み合わせる、特定の条件に基づいて手数料を算出する、といった複雑な計算ロジックを一つのカスタム関数にまとめることができます。これにより、同じ計算を何度も行う際に、数式をコピー&ペーストする手間が省け、入力ミスも防げます。

標準関数では実現できない特殊な処理の実装

Excelの標準関数だけでは実現が難しい、特定の文字列操作や、複数条件の組み合わせによる判定なども、LAMBDA関数を使えばカスタム関数として実装可能です。例えば、特定のフォーマットに文字列を整形する関数や、複数のセルを横断して条件に合うものを探す関数などが考えられます。

シート間のデータ参照を効率化

シートをまたいだ複雑な参照や計算が必要な場合、カスタム関数として定義しておくと、数式が簡潔になり、管理しやすくなります。例えば、複数のシートから特定のデータを集計する関数などを定義できます。

VBAマクロの代替としての利用

簡単な処理であれば、VBAマクロを作成する代わりに、LAMBDA関数と「名前の管理」でカスタム関数を作成することも可能です。VBAの知識がなくても、Excelの数式だけで同様の機能を実現できるため、より多くのユーザーがカスタム関数を作成・活用できるようになります。

まとめ

この記事では、ExcelのLAMBDA関数を使ってオリジナル関数を作成し、「名前の管理」機能で登録・利用する方法を解説しました。LAMBDA関数で定義したカスタム関数は、Excelの標準関数のようにセルから直接呼び出せるため、複雑な計算や繰り返し作業の効率を大幅に向上させます。ぜひ、ご自身の業務で繰り返し使う計算や、複雑な処理をカスタム関数として登録し、Excel作業の効率化に役立ててください。

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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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