Excel関数 逆引き集 | 再利用可能な安全関数 → LAMBDA

Excel
スポンサーリンク

概要

「毎回同じ IFERROR を書くのが面倒」
「安全な割り算、安全な VLOOKUP、安全な平均…全部ひとつの“関数”として再利用したい」
「複雑な処理を“自作関数”として登録して、どのシートでも使いたい」

そんな願いを叶えるのが LAMBDA 関数です。

LAMBDA を使うと、
Excel の中に“自分専用の関数”を作れる ようになります。

しかも、

  • エラー回避ロジックを関数の中に閉じ込める
  • 何度でも再利用できる
  • 名前を付けて関数として呼び出せる

という、まさに“安全関数の再利用”に最適な仕組みです。


LAMBDA の基本

LAMBDA の書式

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

LAMBDA は「引数(入力)」と「計算式(出力)」をセットにして
“関数そのもの”を作る仕組みです。

例:2つの数を足す関数

=LAMBDA(a, b, a + b)

これだけで「a と b を足す関数」が作れます。

ただし、このままでは“関数として登録”されていないので、
名前の管理(名前の定義)に登録して初めて
普通の関数のように使えるようになります。


再利用可能な「安全割り算関数」を作る

分母が 0 のときエラーにしない割り算

普通の割り算:

=A2 / B2

B2 が 0 だと #DIV/0! になります。

これを「安全割り算」として関数化します。

1. LAMBDA を作る

=LAMBDA(x, y, IF(y=0, NA(), x/y))

意味:

  • x … 分子
  • y … 分母
  • y が 0 のときは NA()
  • それ以外は x/y

2. 名前を付けて登録する

  1. 数式タブ → 名前の管理
  2. 新規作成
  3. 名前:SAFE_DIV
  4. 参照範囲に上の LAMBDA を貼り付け
  5. OK

3. 関数として使う

=SAFE_DIV(A2, B2)

これで、
どのシートでも使える“安全割り算関数” が完成します。


再利用可能な「安全 VLOOKUP 関数」を作る

VLOOKUP のエラーを 0 にしたい場合

普通の VLOOKUP:

=VLOOKUP(A2, マスタ!A:D, 2, FALSE)

検索失敗で #N/A になります。

これを「安全 VLOOKUP」として関数化します。

LAMBDA の形

=LAMBDA(key, range, col, IFERROR(VLOOKUP(key, range, col, FALSE), 0))

名前を SAFE_VLOOKUP として登録すれば、

=SAFE_VLOOKUP(A2, マスタ!A:D, 2)

と書くだけで、
エラーを自動で 0 に変換する VLOOKUP が使えるようになります。


再利用可能な「安全平均関数」を作る

エラーを除外して平均を取りたい

普通の AVERAGE はエラーがあると計算できません。

そこで、
「エラーを除外して平均を取る関数」を作ります。

LAMBDA の形

=LAMBDA(rng, AVERAGE(FILTER(rng, NOT(ISERROR(rng)))))

名前を SAFE_AVG として登録すれば、

=SAFE_AVG(A2:A20)

で、
正常値だけの平均 が取れます。


LAMBDA を使うときのポイント

1. LAMBDA は“名前の定義”に登録して初めて関数になる

セルに直接書いても動きません。
必ず「名前の管理」から登録します。

2. 引数の数は自由に決められる

1つでも、2つでも、10個でも OK。

3. LET と組み合わせるとさらに強力

LAMBDA の中で LET を使うと、
複雑な処理を“読みやすく分解”できます。

例:

=LAMBDA(x, y,
  LET(
    分母, y,
    分子, x,
    安全分母, IF(分母=0, NA(), 分母),
    分子 / 安全分母
  )
)

例題

問題1

分母が 0 のとき NA() を返し、
それ以外は x/y を返す「安全割り算関数」を LAMBDA で作りたい。
LAMBDA の式を書いてください。

=LAMBDA(x, y, IF(y=0, NA(), x/y))

問題2

VLOOKUP の検索失敗を 0 に変換する「安全 VLOOKUP 関数」を作りたい。
key(検索値)、range(範囲)、col(列番号)を引数にした LAMBDA を書いてください。

=LAMBDA(key, range, col, IFERROR(VLOOKUP(key, range, col, FALSE), 0))

問題3

範囲 rng の中からエラーを除外し、正常値だけで平均を取る関数を作りたい。
LAMBDA の式を書いてください。

=LAMBDA(rng, AVERAGE(FILTER(rng, NOT(ISERROR(rng)))))

問題4

A2 の値を 1.1 倍し、エラーなら 0 を返す関数を LAMBDA で作りたい。
引数は x とし、LAMBDA の式を書いてください。

=LAMBDA(x, IFERROR(x*1.1, 0))

問題5

x と y を受け取り、
「x+y」「x−y」「x*y」をまとめて返す関数を LAMBDA で作りたい。
(返り値は HSTACK を使うものとする)

=LAMBDA(x, y, HSTACK(x+y, x-y, x*y))

まとめ

「再利用可能な安全関数 → LAMBDA」のポイントは、

  • エラー回避ロジックを関数の中に閉じ込める
  • 名前を付けて登録すれば、どのシートでも使える
  • IFERROR・分母チェック・FILTER などを組み合わせて“安全関数”を作れる
  • 複雑な処理を“自作関数”として再利用できる

というところにあります。

まずはこの型を覚えておくと便利です。

=LAMBDA(引数…, 安全処理を含む計算式)

Excel を“自分専用の関数が作れるプログラミング環境”として使えるようになると、
作業効率が一気に変わります。
ぜひ LAMBDA を使って、あなた専用の「安全関数ライブラリ」を作ってみてください。

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