ADVERTISEMENT

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

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

毎回同じ数式をセルにコピーして、引数だけを変えて使いたいと思ったことはありませんか。Googleスプレッドシートでは、LAMBDA関数を使って名前付き関数を作成すると、独自の関数を定義して引数を自由に指定できるようになります。この記事では、名前付き関数の作成方法と引数の書き方を、具体例を交えてわかりやすく解説します。これを読めば、複雑な計算もシンプルな関数呼び出しで済ませられるようになります。

【要点】LAMBDA関数で名前付き関数を作り、引数を指定するポイント

  • 名前付き関数の作成メニュー: 「データ」メニューから「名前付き関数」を開き、関数名とLAMBDA式を登録します。引数はLAMBDAの仮引数として指定します。
  • LAMBDA構文の基本: =LAMBDA(引数1, 引数2, …, 計算式) と書きます。引数はカンマで区切り、最後に計算式を記述します。
  • 名前付き関数の呼び出し: 作成後は通常の関数と同じように =関数名(引数値1, 引数値2) で使えます。引数の順番と数に注意します。

ADVERTISEMENT

LAMBDA関数と名前付き関数の仕組み

LAMBDA関数は、無名関数(名前のない関数)を作成するための関数です。通常の関数のように名前を付けて保存するには、スプレッドシートの名前付き関数機能を使います。名前付き関数は、特定のワークブック内で再利用可能なカスタム関数を定義できる機能です。LAMBDAと組み合わせると、任意の引数を受け取る複雑な計算を、簡単な関数名で呼び出せるようになります。

例えば、消費税込の金額を計算する関数を考えます。毎回 =ROUND(A1*1.1, 0) と書く代わりに、名前付き関数「税込価格」を作成し、引数として元の金額を渡せるようにします。これにより、数式が短くなり、修正も1箇所で済みます。

名前付き関数は、スプレッドシートの「データ」メニューからアクセスする専用のエディタで管理します。作成した関数は、同じファイル内のどのセルからでも呼び出せます。ただし、他のファイルには共有されません。

名前付き関数を作成して引数を指定する手順

基本的な作成手順(1引数の場合)

  1. 名前付き関数エディタを開く
    メニューバーから「データ」→「名前付き関数」をクリックします。右側にエディタパネルが表示されます。
  2. 新しい関数を追加する
    パネル下部の「新しい関数を追加」ボタンをクリックします。
  3. 関数名を入力する
    「関数名」フィールドに、呼び出し時に使う名前を入力します。例:「税込価格」。名前は英数字とアンダースコアのみ使用可能です。
  4. 引数の説明を入力する(省略可)
    「引数の説明」には、各引数の役割を書きます。ここでは「税抜価格」などと入力します。
  5. 数式定義欄にLAMBDA式を入力する
    「数式定義」に、以下のようにLAMBDA式を書きます。
    =LAMBDA(価格, ROUND(価格*1.1, 0))
    LAMBDAの仮引数「価格」が、関数呼び出し時の引数に対応します。
  6. テストして保存する
    「テスト」ボタンをクリックして動作確認をします。問題がなければ「次へ」→「保存」をクリックします。

複数の引数を持つ関数を作成する

引数が複数ある場合は、LAMBDAの仮引数をカンマで区切って並べます。例えば、長方形の面積を計算する関数「面積」を作成します。

  1. 名前付き関数「面積」を作成する
    先ほどと同じ手順で新規関数を追加し、関数名を「面積」にします。
  2. 数式定義に複数引数のLAMBDAを記述する
    数式定義に次のように入力します。
    =LAMBDA(縦, 横, 縦*横)
  3. 呼び出し例
    セルに =面積(5, 10) と入力すると、結果は50になります。

LAMBDA内で他の関数と組み合わせる

名前付き関数の中で、IFやSUMなどの他の関数を使うこともできます。例えば、数値が正の場合はその値を、負の場合は0を返す関数「非負数」を作成します。

  1. 関数名を「非負数」にする
    数式定義に以下を入力します。
    =LAMBDA(x, IF(x>0, x, 0))
  2. 使用例
    =非負数(-3) は0を返し、=非負数(5) は5を返します。

名前付き関数を使う際の注意点とよくある失敗

引数の数が合わない場合

名前付き関数を呼び出すとき、定義した引数の数と実際に渡す引数の数が異なるとエラーになります。例えば、2引数の関数に1つだけ渡すと「関数の引数が少なすぎます」というエラーが表示されます。必ず定義通りの個数を渡してください。

循環参照に注意する

名前付き関数の中で自分自身を呼び出すと循環参照になり、エラーが発生します。再帰的な処理が必要な場合は、別の方法(例:スクリプト)を検討してください。

関数名の重複

同じファイル内で既存の関数名(SUMなど)と同じ名前を付けることはできません。また、名前付き関数同士でも重複は禁止です。管理画面で既存の名前を確認してから設定しましょう。

他のファイルでは使えない

名前付き関数はそのファイル内でのみ有効です。別のスプレッドシートから呼び出すことはできません。複数ファイルで共有したい場合は、Apps Scriptなど別の手段を検討してください。

配列を引数に渡す場合

LAMBDAの引数にはセル範囲や配列も渡せますが、その場合は計算式がスピルする可能性があります。配列を引数に取る名前付き関数を作成するときは、ARRAYFORMULAと組み合わせるなどの対策が必要です。例えば、配列の各要素を2倍する関数「倍にする」は =LAMBDA(範囲, ARRAYFORMULA(範囲*2)) と定義します。呼び出し時は =倍にする(A1:A10) のように使います。

ADVERTISEMENT

LAMBDAを使う場合と使わない場合の比較

方法 メリット デメリット
名前付き関数(LAMBDA) 関数名で呼び出せて数式が短くなる、引数指定が柔軟、修正が一箇所で済む ファイル内限定、再帰不可、引数の数に制限あり
従来の名前付き範囲 セル範囲に名前を付けて参照できる 引数を受け取れない、計算ロジックは別途必要
Apps Script(カスタム関数) 複雑なロジック・再帰・外部ファイル連携が可能 スクリプトの知識が必要、実行速度が遅い場合がある

上記の表のように、LAMBDAを使った名前付き関数は、スクリプトほど複雑ではないが、単純な範囲指定よりも柔軟な処理をしたい場合に最適です。引数の数が多い場合はLAMBDAの可読性が下がるため、そのようなときはスクリプトを検討しましょう。

まとめ

この記事では、LAMBDA関数を使って名前付き関数を作成し、引数を指定する方法を解説しました。基本的な作成手順から、複数引数や他の関数との組み合わせまで、具体例を交えて理解いただけたと思います。名前付き関数を使いこなすと、日々のスプレッドシート作業の効率が格段に向上します。まずは簡単な計算から試し、徐々に複雑な処理に挑戦してみてください。応用例として、条件付き書式と組み合わせた動的な計算式や、QUERY関数の中での利用も面白いです。ぜひ、あなたのワークフローに取り入れてみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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