LAMBDA 関数を使用して、再利用可能なカスタム関数を作成し、フレンドリ名で呼び出します。 新しい関数はブック全体で使用でき、ネイティブ Excel 関数と同様に呼び出されます。
よく使用される数式の関数を作成し、この数式をコピーして貼り付ける (エラーが発生しやすい可能性があります) 必要をなくし、ネイティブの Excel 関数ライブラリに独自の関数を効果的に追加できます。 さらに、LAMBDA 関数には VBA、マクロ、JavaScript は必要ないため、プログラマ以外のユーザーもその使用の恩恵を受けることができます。
書式
=LAMBDA([parameter1, parameter2, …,] calculation)
| 引数 | 説明 |
|---|---|
| パラメーター | セル参照、文字列、数値などの関数に渡す値。 最大 253 個のパラメーターを入力できます。 この引数は省略可能です。 |
| 計算 | 関数の結果として実行して返す数式。 最後の引数である必要性があり、結果を返す必要があります。 この引数は必須です。 |
解説
- ラムダ名とパラメーターは、名前の Excel 構文規則に従います。ただし、パラメーター名にピリオド (.) を使用しないでください。 詳細については、「数式の名前」を参照 してください。
- 正しい数と型の引数を渡し、開きかっこと閉じかっこの照合、書式設定されていないとして数値を入力するなど、ネイティブの Excel 数式を使用する場合と同様に、LAMBDA 関数を作成する場合のベスト プラクティスに従ってください。 また、 Evaluate コマンドを使用すると、Excel はすぐに LAMBDA 関数の結果を返し、ステップインできません。 詳細については、「数式のエラーを検出する」を参照してください。
エラー
- 253 を超えるパラメーターを入力すると、Excel は #VALUE! を返します。 エラーを返します。
- LAMBDA 関数に渡された引数の数が正しくない場合、Excel は #VALUE! を返します。 エラーを返します。
- LAMBDA 関数をそれ自体から呼び出し、呼び出しが循環している場合、Excel は #NUM! を返すことができます。 再帰呼び出しが多すぎる場合のエラー。
- セル内から LAMBDA 関数も呼び出さずにセル内に LAMBDA 関数を作成すると、Excel は #CALC! を返します。 エラーのあるセルを選びます。
LAMBDA 関数を作成する
ここでは、LAMBDA が意図したとおりに動作し、ネイティブ Excel 関数の動作によく似ているかどうかを確認するための手順を示します。
手順 1: 数式をテストする
計算引数で使用する数式が正しく動作していることを確認します。 これは、LAMBDA 関数を作成するときに、数式が動作することを確認し、エラーや予期しない動作が発生した場合にその式を除外できるため、非常に重要です。 詳細については、「Excel での数式の概要」および「Excel で簡単な数式を作成する」を参照してください。
手順 2: セルに LAMBDA を作成する
適切な手順は、セル内で LAMBDA 関数を作成してテストし、定義やパラメーターの渡しなど、正しく動作することを確認することです。 #CALC! を回避するには、 エラーが発生しました。すぐに結果を返すための LAMBDA 関数の呼び出しを追加してください:
=LAMBDA function ([parameter1, parameter2, ...],calculation) (function call)
次の例では、2 の値を返します。
=LAMBDA(number, number + 1)(1)
手順 3: 名前マネージャーに LAMBDA を追加する
LAMBDA 関数を完成したら、最終的な定義のために名前マネージャーに移動します。 これにより、ラムダ関数にわかりやすい名前を付け、説明を入力し、ブック内の任意のセルから再利用できるようにします。 LAMBDA 関数は、文字列定数、セル範囲、テーブルなど 、任意の名前に対して可能な限り管理することもできます。
手順
次のいずれかの操作を行います。
- Excel for Windows で、 数式>Name Manager を選択します。
- Excel for Macで、[数式>定義名] を選択します。
[新規] 選択し、[新しい名前] のダイアログ ボックスに情報を入力します:
名前: LAMBDA 関数の名前を入力します。 対象: ブックが既定です。 Excel for the webを除き、個々のシートも利用できます。 コメント: 省略可能ですが、強く推奨されます。 255 文字まで入力できます。 関数の目的と、引数の正しい数と型を簡単に説明します。
数式を入力し、数式オートコンプリート (Intellisense とも呼ばれます) を使用すると、[関数の挿入] ダイアログ ボックスとツールヒント (計算引数) として表示されます。参照先 LAMBDA 関数を入力します。 次に例を示します。
LAMBDA 関数を作成するには、[OK] を選択します。
[名前マネージャー] ダイアログ ボックスを閉じるには、[閉じる] を選択します。
詳細については、「名前マネージャーを使用する」を参照してください。
例
例 1: 華氏を摂氏に変換する
名前マネージャーで次を定義します。
| 名前: | ToCelsius |
|---|---|
| 対象: | ブック |
| コメント: | 華氏温度を摂氏に変換する |
| 参照先 | =LAMBDA(temp, (5/9) * (Temp-32)) |
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
| データ | |
|---|---|
| 104 | |
| 86 | |
| 68 | |
| 50 | |
| 32 | |
| 数式 | 結果 |
| =TOCELSIUS(A2) | 40 |
| =TOCELSIUS(A3) | 30 |
| =TOCELSIUS(A4) | 20 |
| =TOCELSIUS(A5) | 10 |
| =TOCELSIUS(A6) | 0 |
例 2: 斜辺を計算する
名前マネージャーで次を定義します。
| 名前: | 斜辺 |
|---|---|
| 対象: | ブック |
| コメント: | 直角三角形の斜辺の長さを返します |
| 参照先 | =LAMBDA(a, b, SQRT((a^2+b^2))) |
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
| データ | |
|---|---|
| 3 | 4 |
| 5 | 12 |
| 7 | 24 |
| 9 | 40 |
| 数式 | 結果 |
| =HYPOTENUSE(A2,B2) | 5 |
| =HYPOTENUSE(A3,B3) | 13 |
| =HYPOTENUSE(A4,B4) | 25 |
| =HYPOTENUSE(A5,B5) | 41 |
例 3: 単語をカウントする
名前マネージャーで次を定義します。
| 名前: | CountWords |
|---|---|
| 対象: | ブック |
| コメント: | テキスト文字列内の単語数を返します |
| 参照先 | =LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), " ", "")) + 1) |
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
| データ | |
|---|---|
| 何かが道をやってくる | |
| 来た、見た、勝った。 | |
| A quick brown fox jumped over the lazy dog. | |
| ルーク、フォースを使え! | |
| 数式 | 結果 |
| =COUNTWORDS(A2) | 5 |
| =COUNTWORDS(A3) | 6 |
| =COUNTWORDS(A4) | 9 |
| =COUNTWORDS(A5) | 4 |
例 4: 感謝祭の日付を検索する
名前マネージャーで次を定義します。
| 名前: | ThanksgivingDate |
|---|---|
| 対象: | ブック |
| コメント: | 特定の年の米国の感謝祭に該当する日付を返します |
| 参照先 | =LAMBDA(year, TEXT(DATE(year, 11, CHOOSE(WEEKDAY(DATE(year, 11, 1)), 26, 25, 24, 23, 22, 28, 27)), "mm/dd/yyyy")) |
次の表のサンプル データをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。 必要に応じて、列幅を調整してすべてのデータを表示してください。
| データ | |
|---|---|
| 2020 年 | |
| 2021 年 | |
| 2022 年 | |
| 2023 年 | |
| 2024 年 | |
| 数式 | 結果 |
| =THANKSGIVINGDATE(A2) | 11/26/2020 |
| =THANKSGIVINGDATE(A3) | 11/25/2021 |
| =THANKSGIVINGDATE(A4) | 11/24/2022 |
| =THANKSGIVINGDATE(A5) | 11/23/2023 |
| =THANKSGIVINGDATE(A6) | 11/28/2024 |
補足説明
Excel Tech Community の専門家にいつでも依頼したり、コミュニティでサポートを受けたりすることができます。