LAMBDA関数で「自作関数」を作る!繰り返しの数式から卒業しよう

はじめに

今回取り上げるLAMBDA関数、実は私自身もこの記事を書くまでほとんど使ったことがありませんでした。

いざ触ってみると「これ、もっと早く使えばよかった!」と思うくらい便利だったので、同じように「気になってはいるけど手が出ていない」という方に向けて、私が学んだ順番でそのままご紹介します。


LAMBDA関数とは?

LAMBDA(ラムダ)関数は、Excelで「自分だけのオリジナル関数」を作れる機能です。

たとえば、毎回こんな数式を書いていたとします。

=ROUNDUP(金額 * 1.1, 0)

税込金額を切り上げで求める数式ですが、これをシートのあちこちで使っていると、消費税率が変わったときに全部修正しなければなりません。

LAMBDAを使うと、この計算を 「税込金額」という自作関数として登録 しておき、どこでも =税込金額(金額) と書くだけで呼び出せるようになります。


対応バージョンの確認

LAMBDA関数はMicrosoft 365(サブスクリプション版)で使用できます。Excel 2019・2021などの買い切り版では使えない場合があるのでご注意ください。


LAMBDA関数の基本構文

=LAMBDA(引数1, 引数2, ..., 計算式)

たとえば、2つの数を足す自作関数を作るなら:

=LAMBDA(a, b, a + b)

ただし、これをセルにそのまま書いても動きません。LAMBDAは 「名前の定義」と組み合わせて使う のが基本的な使い方です。


実際に使ってみる:税込金額を計算する関数を作る

ステップ1:「名前の定義」でLAMBDAを登録する

  1. リボンの「数式」タブをクリック
  2. 「名前の定義」をクリック
  3. 以下のように設定する
項目入力内容
名前税込金額
参照範囲=LAMBDA(金額, ROUNDUP(金額 * 1.1, 0))
  1. OKをクリック

これで「税込金額」という自作関数が登録されました。

例1)名前の定義

ステップ2:セルで呼び出してみる

セルに次のように入力してみましょう。

=税込金額(1000)

結果:1100

=税込金額(A2)

A2に入力された金額の税込価格(切り上げ)が返ってきます。


例2)登録した関数を利用する

もう少し便利に:引数を複数にする

税率が変わったときにも対応できるよう、税率を引数に加えてみます。

=LAMBDA(金額, 税率, ROUNDUP(金額 * (1 + 税率), 0))

呼び出しはこうなります:

=税込金額2(1000, 0.1)   → 1100
=税込金額2(1000, 0.08)  → 1080

LAMBDA関数のメリットをまとめると

従来の書き方LAMBDAを使った場合
同じ数式をあちこちに書く関数として1か所に定義して呼び出すだけ
税率変更で全セルを修正定義を1か所直すだけでOK
数式が長くて読みにくい=税込金額(A2) とシンプルに書ける
他の人に渡すと数式の意味が伝わらない関数名で意図が伝わる

応用:文字列を整形する自作関数を作る

もう一つ実用的な例を。氏名の姓と名を結合して「姓 名」(全角スペース区切り)にする関数です。

=LAMBDA(姓, 名, 姓 & " " & 名)

「フルネーム」という名前で定義しておけば:

=フルネーム(A2, B2)

これだけで済みます。


セルで直接試す方法(名前の定義なし)

「まず動きを確認したい」という場合は、LAMBDAをセル内で直接呼び出すこともできます。

=LAMBDA(a, b, a + b)(3, 5)

末尾の (3, 5) が引数を渡している部分です。結果は 8 になります。

これは動作確認専用の書き方で、実務では名前を定義して使う方がほとんどです。


つまずきやすいポイント

私が実際に試してみて引っかかったところをまとめます。

引数名は英語でも日本語でもOK ただし、わかりやすい名前をつけると後から見たときに数式の意味が伝わりやすくなります。

名前の定義の「参照範囲」にシート名は不要 「=LAMBDA(…)」とシート参照なしで入力するのが正しい書き方です。

引数の数と呼び出し時の数は一致させる 引数が2つのLAMBDAに3つの値を渡すとエラーになります。


まとめ

  • LAMBDA関数は「自分オリジナルの関数」をExcelに登録できる機能
  • 「名前の定義」と組み合わせて使うのが基本
  • 繰り返し使う計算や、長くなりがちな数式をシンプルにまとめるのに便利
  • Microsoft 365(サブスクリプション版)で使用可能

私自身、最初は「難しそう」という印象を持っていましたが、実際には名前の定義の使い方さえ知っていれば思ったよりずっと簡単でした。

タイトルとURLをコピーしました