ADVERTISEMENT

【Googleスプレッドシート】LAMBDA関数で名前付き関数を作る!引数指定の書き方

【Googleスプレッドシート】LAMBDA関数で名前付き関数を作る!引数指定の書き方
🛡️ 超解決

スプレッドシートで同じ計算式を何度もコピーしていませんか。複雑な数式をセルごとに書き直すのはミスの元です。LAMBDA関数を使えば、数式を引数付きのカスタム関数として定義し、名前を付けて保存できます。この記事では、LAMBDA関数の基本構文と名前付き関数マネージャーでの登録手順をわかりやすく解説します。

LAMBDA関数の仕組みを理解すれば、シート全体の数式を整理し、保守性を高められます。引数の指定方法から実際の使い方まで、具体例を交えてご説明します。初心者の方でもステップバイステップで進められる内容です。

【要点】LAMBDA関数で名前付き関数を作る方法

  • LAMBDA(引数1, 引数2, …, 計算式): 無名の関数を数式内で定義し、引数を使って計算を実行します。結果はセルに返されます。
  • 名前付き関数マネージャー: LAMBDA式に名前と説明を付けて保存する機能です。数式タブから開き、引数と定義式を登録します。
  • =MYFUNCTION(セル参照): 登録した名前付き関数を、組み込み関数と同じように呼び出せます。引数はカンマで区切って指定します。

ADVERTISEMENT

LAMBDA関数と名前付き関数の基礎知識

LAMBDA関数は、数式の中に関数定義を埋め込むための関数です。通常の関数は既に用意されたものを使いますが、LAMBDAを使えば自分でロジックを定義できます。名前付き関数は、そのLAMBDA式に永続的な名前と引数情報を割り当てる機能です。

名前付き関数のメリットは、複雑な数式を一度定義すれば、シート内のどこからでも簡単に呼び出せることです。引数を使うことで、セルの値に応じて動的に計算が変わります。また、数式バーに直接書くよりも、名前付き関数は引数の説明や書式設定を添付できるため、他のユーザーが利用しやすくなります。

LAMBDA関数で名前付き関数を作成する手順

ここでは、売上データから税抜金額を計算する名前付き関数「TAXFREE」を作成します。引数として税込金額と税率を受け取り、税抜金額を返す関数です。税率はパーセント値で入力します(例: 10%は0.1)。

ステップ1: LAMBDA式をテストする

  1. テスト用のセルにLAMBDA式を入力します
    セルA1に税込金額「1000」、B1に税率「0.1」を入力します。セルC1に次の式を入力してください。
    =LAMBDA(amount, tax_rate, amount/(1+tax_rate))(A1, B1)
    結果として「909.09…」が表示されます。このように、LAMBDAの最後に引数を渡して即座に実行できます。
  2. 計算式が正しいことを確認します
    手計算で税抜金額を確認します。税込1000円、税率10%なら税抜金額は1000÷1.1=909.09です。一致していれば問題ありません。

ステップ2: 名前付き関数マネージャーを開く

  1. メニューから「データ」→「名前付き関数」を開きます
    画面上部のメニューバーで「データ」をクリックし、プルダウンから「名前付き関数」を選択します。右側に名前付き関数マネージャーが表示されます。
  2. 「新しい関数を追加」をクリックします
    マネージャーの下部にある「新しい関数を追加」ボタンを押します。新しい画面が開きます。

ステップ3: 関数名と引数を設定する

  1. 関数名を入力します
    「関数名」フィールドに「TAXFREE」と入力します。名前はアルファベットで始め、スペースや記号は使えません。大文字小文字は区別されません。
  2. 引数の説明を入力します
    「引数の説明」欄に、各引数の意味を記述します。ここでは「税込金額」と「税率(10%の場合は0.1)」と入力します。これは数式入力時にツールヒントとして表示されます。
  3. 数式の定義を入力します
    「数式の定義」欄に次のLAMBDA式を入力します。
    =LAMBDA(amount, tax_rate, amount/(1+tax_rate))
    引数名はステップ1と同じにします。直接計算式を書くこともできますが、LAMBDAでラップするのがルールです。

ステップ4: 名前付き関数を保存して利用する

  1. 「次へ」をクリックし、設定を確認します
    画面に引数のリストと定義式が表示されます。問題なければ「作成」ボタンをクリックします。
  2. シートで関数を呼び出します
    任意のセルに「=TAXFREE(1000, 0.1)」と入力してください。結果として「909.09…」が表示されます。セル参照でも動作します。

名前付き関数作成時の注意点

引数名と定義式内の変数名が一致していない

LAMBDAの引数名は、定義式内で使用する変数名と完全に一致している必要があります。例えば、引数名を「x」「y」にしたのに、定義式で「amount」「tax_rate」を使うとエラーになります。名前付き関数マネージャーでは、引数名と定義式内の名前を常に一致させてください。

名前付き関数の引数の数が多すぎる

名前付き関数の引数は最大10個までです。11個以上の引数が必要な場合は、配列や構造化されたデータにまとめる方法を検討します。例えば、範囲を引数として受け取り、内部で分解する方法があります。

再帰関数の制限に注意する

LAMBDA関数は再帰(自分自身を呼び出す)をサポートしていますが、スプレッドシートの計算制限に引っかかることがあります。特に深い再帰はエラーを引き起こす可能性があります。再帰を使う場合は、十分に浅い階層でテストしてください。

他のスプレッドシートから参照できない

名前付き関数は作成したスプレッドシート内でのみ有効です。別のシートからIMPORTRANGEで参照しても、その関数を使うことはできません。複数のシートで同じ関数を使いたい場合は、各シートで同じ定義を登録する必要があります。

ADVERTISEMENT

LAMBDA関数と通常の名前付き関数の比較

項目 通常の名前付き関数(名前付き範囲) LAMBDAを使った名前付き関数
引数 引数なし(固定の数式または値) 引数を指定でき、呼び出し時に値を渡せる
利用シーン 定数やよく使う固定の計算式 異なるセル値に応じて計算結果が変わる処理
定義の複雑さ 非常にシンプル LAMBDA式を理解する必要があるが、柔軟性が高い
メンテナンス性 数式の変更は定義を直接編集 引数名やロジックをマネージャーで管理でき、ツールヒントも表示

まとめ

LAMBDA関数と名前付き関数を組み合わせることで、繰り返し使う複雑な計算をカスタム関数として再利用できます。引数を指定することで、セルの値に応じた動的な処理が可能になります。今回紹介したTAXFREEのような関数を作れば、シートの数式の可読性と保守性が格段に向上します。ぜひ、自分の作業に合わせた名前付き関数を試してみてください。次は、条件分岐を含むIF関数と組み合わせた関数や、再帰を利用した階層計算にも挑戦するとよいでしょう。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。