同じ計算式を何箇所にもコピーしていると、仕様変更のたびに全セルを修正しなければなりません。LAMBDA関数を使えば、自分で名前を付けたオリジナルのワークシート関数を作れます。一度定義すれば =税込(A2) のように普通の関数と同じ感覚で使えるうえ、計算ロジックの変更は定義を1箇所直すだけで全セルに反映されます。
この記事では、LAMBDA関数の基本構文から「名前の定義」への登録手順、省略可能パラメータの作り方までを、実例とスクリーンショットで解説します。LAMBDA関数は Microsoft 365 / Excel 2024 / Excel for the web で利用できます。
記事の手順を試せるサンプルファイルを用意しました。税込計算・成績判定・デフォルト税率の3つの名前定義LAMBDAが登録済みです。
LAMBDA関数の基本の書き方
LAMBDA関数の構文は次のとおりです。
=LAMBDA(パラメータ1, パラメータ2, ..., 計算式)(引数1, 引数2, ...)ポイントは、最後のパラメータが「計算式(戻り値)」になるルールです。LAMBDA に渡す値の受け口を先に並べ、最後に計算式を書きます。LAMBDA の後ろの丸括弧で実際の引数を渡すと、計算結果が返ります。
最もシンプルな例として、税抜価格を1.1倍して税込価格を返す式を見てみます。
=LAMBDA(x, x*1.1)(1000)パラメータ x に 1000 が渡り、x*1.1 の計算結果 1100 が返ります。
パラメータは複数指定できます。金額と税率の2つを受け取り、端数を四捨五入する例です。
=LAMBDA(金額, 税率, ROUND(金額*(1+税率), 0))(1980, 0.1)結果は 2178 です。パラメータ名は x や a のような短い名前でも、金額 や 税率 のような日本語でも自由に付けられます。

ただし、この書き方ではセルごとに毎回 LAMBDA を書く必要があり、通常の数式と手間が変わりません。LAMBDA の真価は、次に説明する「名前の定義」に登録して、オリジナル関数として繰り返し使えるようにすることで発揮されます。
名前の定義に登録してオリジナル関数にする
LAMBDA を「名前の定義」に登録すると、Excel の組み込み関数(SUM や IF)と同じ感覚で呼び出せるオリジナル関数になります。税込価格を計算する関数「税込」を作る手順を見ていきます。
手順
- 数式タブ → 定義された名前グループ → 名前の定義をクリック(ショートカット: Ctrl+F3 → 新規作成)
- 「新しい名前」ダイアログが開く
- 名前欄に関数名を入力:
税込 - 参照範囲欄に LAMBDA 式を入力:
=LAMBDA(金額, ROUND(金額*1.1, 0)) - OK で閉じる

これで「税込」関数が使えるようになりました。セルに次のように入力すると、税込価格が返ります。
=税込(B2)
登録した名前の一覧は、数式タブ → 名前の管理(Ctrl+F3)で確認できます。

覚えておきたいポイント
- 関数名は日本語OK(「税込」「成績」など)。パラメータ名も日本語が使える
- 登録した関数は同じブック内でのみ有効。別のブックからは
#NAME?エラーになる - SUM や IF など組み込み関数と同じ名前で定義を作ること自体はできるが、呼び出し時は組み込み関数が優先されて LAMBDA は使われない。エラーにはならず意図と違う結果になるため、組み込み関数と同名にしないこと
引数の意味と設定のルール
LAMBDA のパラメータの仕組みを整理します。
| 引数の位置 | 役割 | 例 |
|---|---|---|
| 1番目〜最後から2番目 | 関数に渡す値の受け口(パラメータ)。名前は自由 | 金額、税率、x |
| 最後(必須) | 計算式。パラメータを使った計算結果がこの関数の戻り値になる | ROUND(金額*(1+税率), 0) |
パラメータは最大253個まで指定できます。名前にはセル参照と同じ文字列(A1、B2 など)は使えません。
対象バージョン: LAMBDA関数は Microsoft 365 / Excel 2024 / Excel for the web で利用できます。この記事で紹介する MAP / REDUCE などのヘルパー関数も同じバージョンで利用可能です。
省略可能パラメータの作り方
パラメータ名を [ ] で囲むと、呼び出し時にそのパラメータを省略できるようになります。省略されたかどうかは ISOMITTED 関数で判定します。
次の例では、税率を省略すると10%で計算し、指定すればその税率で計算する関数を作ります。
=LAMBDA(金額, [税率], IF(ISOMITTED(税率), ROUND(金額*1.1,0), ROUND(金額*(1+税率),0)))この LAMBDA を名前「税込D」として登録すると、次のように使い分けられます。
=税込D(98000)→ 107,800(税率省略 → 10%で計算)=税込D(98000, 0.08)→ 105,840(8%を明示)

途中のパラメータだけを省略することもできます。=FLEX(1, , 300) のようにカンマの間を空にすると、2番目のパラメータだけが省略扱いになります。
実践例 ― 3つの自作関数を作ってみる
例1: 税込計算(基本)
名前の定義に登録する LAMBDA 式:
=LAMBDA(金額, ROUND(金額*1.1, 0))名前: 税込
セルには =税込(B2) と入力するだけです。消費税率が変更になった場合は、名前の定義の LAMBDA 式を1箇所修正すれば、全セルの計算結果が自動で変わります。
例2: 成績判定(IFを組み込む)
名前の定義に登録する LAMBDA 式:
=LAMBDA(点数, IF(点数>=80,"A",IF(点数>=60,"B",IF(点数>=40,"C","D"))))名前: 成績
IF のネストを LAMBDA に閉じ込めることで、セルの数式は =成績(B2) だけになります。判定基準を変更する場合も定義の修正だけで済みます。

例3: デフォルト税率付き(省略可能パラメータ)
名前の定義に登録する LAMBDA 式:
=LAMBDA(金額, [税率], IF(ISOMITTED(税率), ROUND(金額*1.1,0), ROUND(金額*(1+税率),0)))名前: 税込D
標準税率(10%)の商品は引数1つで、軽減税率(8%)の食品は税率を明示して呼び出します。

応用パターン
LETと組み合わせて数式内だけで使う
名前の定義に登録せず、1つのセル内で LAMBDA を使い捨てる方法もあります。LET 関数の中で LAMBDA を変数に入れ、その場で呼び出します。
=LET(判定, LAMBDA(x, IF(x>=60,"合格","不合格")), 判定(B2))この方法では他のセルからは使えませんが、複雑な数式を整理するのに便利です。LET 関数の詳しい使い方は「LET関数で長い数式を分解して読みやすくする方法」で解説しています。

名前定義LAMBDA同士を組み合わせる
名前定義した LAMBDA の中から、別の名前定義 LAMBDA を呼び出すこともできます。小さな部品を組み合わせて複雑な関数を作れます。
倍にする==LAMBDA(x, x*2)4倍にする==LAMBDA(x, 倍にする(倍にする(x)))
=4倍にする(10) は 倍にする(倍にする(10)) → 倍にする(20) → 40 と計算されます。
MAP / REDUCE との連携
Microsoft 365 / Excel 2024 には、LAMBDA を引数に取るヘルパー関数が用意されています。
| 関数 | できること | 例 |
|---|---|---|
| MAP | 配列の各要素に同じ計算を適用 | =MAP(A1:A10, 税込) |
| REDUCE | 配列を1つの値に集約 | =REDUCE(0, A1:A3, LAMBDA(累積,x, 累積+x)) |
| BYROW | 行ごとに集計 | =BYROW(A1:C3, LAMBDA(行, SUM(行))) |
たとえば =MAP(A1:A10, 税込) と書くだけで、A1:A10 の全セルに一括で税込計算を適用できます。
エラーが出たときの確認ポイント
| エラー | 原因 | 対処 |
|---|---|---|
#CALC! | LAMBDA を定義しただけで呼び出していない(引数を渡していない) | LAMBDA の後ろに (引数) を付ける。名前の定義に登録する場合は問題ない |
#VALUE! | 渡した引数の数がパラメータの数と合わない | 定義と呼び出しのパラメータ数を一致させる。[ ] で囲んでいないパラメータは省略できない |
#NAME? | 名前の定義が見つからない(別ブック、スペルミス) | 名前の管理で登録状況を確認する。名前定義は同一ブック内でのみ有効 |
#NUM! | 再帰が深すぎる(上限は約8,190回) | 再帰の終了条件を見直す。実用上この上限に当たることはほぼない |

そのほかの注意点
- SUM や IF など組み込み関数と同じ名前で定義を作ること自体はできるが、呼び出し時は組み込み関数が優先されて LAMBDA は使われない。エラーにはならず意図と違う結果になるため、組み込み関数と同名にしないこと
- 空セルを引数に渡すと数値の 0 として扱われる。意図しない計算結果になることがある
まとめ
- LAMBDA 関数で「パラメータ → 計算結果」のオリジナル関数を作れる
- 名前の定義に登録すると、
=税込(A2)のように通常の関数と同じ感覚で使える - 日本語の関数名・パラメータ名が使える
[ ]で省略可能パラメータを作り、ISOMITTEDでデフォルト値を設定できる- 定義した関数は同じブック内でのみ有効
- 計算ロジックの変更は定義を1箇所直すだけで全セルに反映される
- Microsoft 365 / Excel 2024 / Excel for the web で利用可能
コピペ用の基本構文:
=LAMBDA(パラメータ, 計算式)
コメント