LAMBDA関数の使い方
再利用可能なカスタム関数を作成します。
365
Microsoft 365 でだけ使えます。買い切り版のExcelにはありません。
- 構文
-
=LAMBDA([引数1, 引数2, ...], 数式) - 引数
-
- 引数1省略できる
- 引数2省略できる
- 数式必須
このあとも、同じように続けて渡せます。
- どんな関数か
VBAを使わずに、数式だけで独自の新しい関数を定義できます。定義したLAMBDA関数は、名前の定義に登録して通常の関数のように呼び出せます。複雑な計算を一箇所に集約し、シート内での重複記述を避けることができます。
- 使用例
-
C2 に
=LAMBDA(w, h, w*h)(10, 20)を入れると、こうなります。A B C 1 横 縦 面積 2 10 20 200 数式を入れたセル
結果: w*hを定義して10と20を代入(200)
つまずきやすいところ
- そのままセルに書いても使えない。名前の定義に登録するか、MAP などに渡す
よくあるエラーと、その直し方
LAMBDAを使う実例レシピ(12件)
- 消費税計算のオリジナル関数を作る複雑な税率計算を、独自の名前(例:TAX)だけで呼び出せるようにする。
- 範囲内の全セルを一気にチェックするリストにある各点数が「80点以上かどうか」を1つずつ判定し、結果を返す。
- 累計額を1つの数式で算出(スピル)各行の売上を足していき、隣の列に今の累計を出し続ける。
- 条件に合う全セルを1つに集約(究極のループ)範囲内の数値をすべて掛け合わせる、といった特殊な集計を行う。
- 自分専用の「消費税計算」関数を作る何度も使う複雑な計算に名前を付けて、普通の関数のよう(=TAX(1000))に使いたい。
- 範囲内の全ての値に同じ関数を適用する表の中の全ての文字列から、一気に余計なスペースを消したい。
- 入庫と出庫を全部同じ列に書いて「現在の在庫」を出す縦長の入出庫記録から、上から順にその時点の残高を計算し続けたい。
- 再帰型LAMBDAで「階乗」を自作関数化する関数の中で自分自身を呼び出して、複雑な計算を1つの名前(例:=FACT_NEW(n))で完結させたい。
- REDUCEを使って「0以外の最初の値」を探す範囲の中から、最初に出現する「意味のある数字」だけを拾いたい。
- 特定の文字が来たら「累計」をリセットする日付が変わるたびに、その日の売上累計を0から数え直したい。
- 1行ごとの「最大値」を一括でスピルさせる100行ある表に対して、各行のMAXを1つの数式だけで横に出し切りたい。
- 1列ごとの「平均値」を1つの数式で算出複数の項目があるデータセットで、各項目の平均を一気にボトムラインに出したい。