スプレッドシートで同じ計算式を何度もコピーしていませんか。複雑な数式をセルごとに書き直すのはミスの元です。LAMBDA関数を使えば、数式を引数付きのカスタム関数として定義し、名前を付けて保存できます。この記事では、LAMBDA関数の基本構文と名前付き関数マネージャーでの登録手順をわかりやすく解説します。
LAMBDA関数の仕組みを理解すれば、シート全体の数式を整理し、保守性を高められます。引数の指定方法から実際の使い方まで、具体例を交えてご説明します。初心者の方でもステップバイステップで進められる内容です。
【要点】LAMBDA関数で名前付き関数を作る方法
- LAMBDA(引数1, 引数2, …, 計算式): 無名の関数を数式内で定義し、引数を使って計算を実行します。結果はセルに返されます。
- 名前付き関数マネージャー: LAMBDA式に名前と説明を付けて保存する機能です。数式タブから開き、引数と定義式を登録します。
- =MYFUNCTION(セル参照): 登録した名前付き関数を、組み込み関数と同じように呼び出せます。引数はカンマで区切って指定します。
ADVERTISEMENT
LAMBDA関数と名前付き関数の基礎知識
LAMBDA関数は、数式の中に関数定義を埋め込むための関数です。通常の関数は既に用意されたものを使いますが、LAMBDAを使えば自分でロジックを定義できます。名前付き関数は、そのLAMBDA式に永続的な名前と引数情報を割り当てる機能です。
名前付き関数のメリットは、複雑な数式を一度定義すれば、シート内のどこからでも簡単に呼び出せることです。引数を使うことで、セルの値に応じて動的に計算が変わります。また、数式バーに直接書くよりも、名前付き関数は引数の説明や書式設定を添付できるため、他のユーザーが利用しやすくなります。
LAMBDA関数で名前付き関数を作成する手順
ここでは、売上データから税抜金額を計算する名前付き関数「TAXFREE」を作成します。引数として税込金額と税率を受け取り、税抜金額を返す関数です。税率はパーセント値で入力します(例: 10%は0.1)。
ステップ1: LAMBDA式をテストする
- テスト用のセルにLAMBDA式を入力します
セルA1に税込金額「1000」、B1に税率「0.1」を入力します。セルC1に次の式を入力してください。=LAMBDA(amount, tax_rate, amount/(1+tax_rate))(A1, B1)
結果として「909.09…」が表示されます。このように、LAMBDAの最後に引数を渡して即座に実行できます。 - 計算式が正しいことを確認します
手計算で税抜金額を確認します。税込1000円、税率10%なら税抜金額は1000÷1.1=909.09です。一致していれば問題ありません。
ステップ2: 名前付き関数マネージャーを開く
- メニューから「データ」→「名前付き関数」を開きます
画面上部のメニューバーで「データ」をクリックし、プルダウンから「名前付き関数」を選択します。右側に名前付き関数マネージャーが表示されます。 - 「新しい関数を追加」をクリックします
マネージャーの下部にある「新しい関数を追加」ボタンを押します。新しい画面が開きます。
ステップ3: 関数名と引数を設定する
- 関数名を入力します
「関数名」フィールドに「TAXFREE」と入力します。名前はアルファベットで始め、スペースや記号は使えません。大文字小文字は区別されません。 - 引数の説明を入力します
「引数の説明」欄に、各引数の意味を記述します。ここでは「税込金額」と「税率(10%の場合は0.1)」と入力します。これは数式入力時にツールヒントとして表示されます。 - 数式の定義を入力します
「数式の定義」欄に次のLAMBDA式を入力します。=LAMBDA(amount, tax_rate, amount/(1+tax_rate))
引数名はステップ1と同じにします。直接計算式を書くこともできますが、LAMBDAでラップするのがルールです。
ステップ4: 名前付き関数を保存して利用する
- 「次へ」をクリックし、設定を確認します
画面に引数のリストと定義式が表示されます。問題なければ「作成」ボタンをクリックします。 - シートで関数を呼び出します
任意のセルに「=TAXFREE(1000, 0.1)」と入力してください。結果として「909.09…」が表示されます。セル参照でも動作します。
名前付き関数作成時の注意点
引数名と定義式内の変数名が一致していない
LAMBDAの引数名は、定義式内で使用する変数名と完全に一致している必要があります。例えば、引数名を「x」「y」にしたのに、定義式で「amount」「tax_rate」を使うとエラーになります。名前付き関数マネージャーでは、引数名と定義式内の名前を常に一致させてください。
名前付き関数の引数の数が多すぎる
名前付き関数の引数は最大10個までです。11個以上の引数が必要な場合は、配列や構造化されたデータにまとめる方法を検討します。例えば、範囲を引数として受け取り、内部で分解する方法があります。
再帰関数の制限に注意する
LAMBDA関数は再帰(自分自身を呼び出す)をサポートしていますが、スプレッドシートの計算制限に引っかかることがあります。特に深い再帰はエラーを引き起こす可能性があります。再帰を使う場合は、十分に浅い階層でテストしてください。
他のスプレッドシートから参照できない
名前付き関数は作成したスプレッドシート内でのみ有効です。別のシートからIMPORTRANGEで参照しても、その関数を使うことはできません。複数のシートで同じ関数を使いたい場合は、各シートで同じ定義を登録する必要があります。
ADVERTISEMENT
LAMBDA関数と通常の名前付き関数の比較
| 項目 | 通常の名前付き関数(名前付き範囲) | LAMBDAを使った名前付き関数 |
|---|---|---|
| 引数 | 引数なし(固定の数式または値) | 引数を指定でき、呼び出し時に値を渡せる |
| 利用シーン | 定数やよく使う固定の計算式 | 異なるセル値に応じて計算結果が変わる処理 |
| 定義の複雑さ | 非常にシンプル | LAMBDA式を理解する必要があるが、柔軟性が高い |
| メンテナンス性 | 数式の変更は定義を直接編集 | 引数名やロジックをマネージャーで管理でき、ツールヒントも表示 |
まとめ
LAMBDA関数と名前付き関数を組み合わせることで、繰り返し使う複雑な計算をカスタム関数として再利用できます。引数を指定することで、セルの値に応じた動的な処理が可能になります。今回紹介したTAXFREEのような関数を作れば、シートの数式の可読性と保守性が格段に向上します。ぜひ、自分の作業に合わせた名前付き関数を試してみてください。次は、条件分岐を含むIF関数と組み合わせた関数や、再帰を利用した階層計算にも挑戦するとよいでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
