スプレッドシートで同じ計算式を何度もコピーしていませんか。複雑な数式をセルごとに書き直すのはミスの元です。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で参照しても、その関数を使うことはできません。複数のシートで同じ関数を使いたい場合は、各シートで同じ定義を登録する必要があります。
LAMBDA関数と通常の名前付き関数の比較
| 項目 | 通常の名前付き関数(名前付き範囲) | LAMBDAを使った名前付き関数 |
|---|---|---|
| 引数 | 引数なし(固定の数式または値) | 引数を指定でき、呼び出し時に値を渡せる |
| 利用シーン | 定数やよく使う固定の計算式 | 異なるセル値に応じて計算結果が変わる処理 |
| 定義の複雑さ | 非常にシンプル | LAMBDA式を理解する必要があるが、柔軟性が高い |
| メンテナンス性 | 数式の変更は定義を直接編集 | 引数名やロジックをマネージャーで管理でき、ツールヒントも表示 |
まとめ
LAMBDA関数と名前付き関数を組み合わせることで、繰り返し使う複雑な計算をカスタム関数として再利用できます。引数を指定することで、セルの値に応じた動的な処理が可能になります。今回紹介したTAXFREEのような関数を作れば、シートの数式の可読性と保守性が格段に向上します。ぜひ、自分の作業に合わせた名前付き関数を試してみてください。次は、条件分岐を含むIF関数と組み合わせた関数や、再帰を利用した階層計算にも挑戦するとよいでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】行を一括追加!複数行をまとめて挿入
- 【Googleスプレッドシート】行・列の入れ替え!ドラッグ&ドロップでの並べ替え
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】Apps Script V8ランタイムへの移行手順!古いコードの書き換え
- 【Googleスプレッドシート】セル内の画像サイズと位置を調整!アンカーと配置の指定
- 【Googleスプレッドシート】2段階プルダウンを実装!連動式リストの作り方
- 【Googleスプレッドシート】テキストを折り返し・はみ出し・切り捨てに切替!セル内の表示設定
- 【Googleスプレッドシート】テンプレートギャラリーを使い倒すコツ!業務別の活用例
