Excel で LAMBDA を使用してスケーラブルで再利用可能な関数を作成する方法

in tech

同じ Excel ロジックを別の場所で書き直したり、一部を再利用するためだけに長い数式を構築したりしたことがあるのは、あなただけではありません。スプレッドシートが大きくなるにつれて、数式はより複雑になり、管理が難しくなる傾向があります。 Excel の LAMBDA 関数を使用すると、ロジックを一度定義すれば、必要なときにいつでも再利用できるため、この状況が変わります。

LAMBDA 関数は、Excel for Microsoft 365 (Windows および Mac)、Excel 2024 (Windows および Mac)、および Web 用 Excel で使用できます。

同じロジックを複数の場所で書き直すと隠れたエラーが発生する

ワークブックが大きくなるにつれてメンテナンスが難しくなる

Excel を定期的に使用している場合は、同じロジックが複数の場所に表示される傾向があるというパターンに気づくでしょう。シート間でコピーされる場合もあれば、新しいコンテキストに合わせて少し異なる方法で再構築される場合もあります。

最初はすべてうまくいきます。しかし、時間が経つにつれて、小さな違いが忍び寄ってきます。あるバージョンの数式はわずかに異なる範囲を参照し、別のバージョンは更新されますが、別の場所にある複製は更新されません。明らかに何も問題がないように見えますが、出力の一致が停止します。そこで、複数のタブにわたってロジックをトレースして、何が変更されたのかを把握することになります。

LAMBDA がこれらの問題を解決する方法を次に示します。

LAMBDA は標準の数式をカスタム関数に変換します

Excel ロジックの構造が変わります

LAMBDA は Excel の数式を再利用可能な関数に変換します。ワークブックのロジックをコピーするのではなく、一度定義すれば、必要なときにどこでも再利用できます。

LAMBDA には 2 つの部分があります。 パラメータ (入力) と 計算 (これらの入力に対してロジックが実行されます):

=LAMBDA(parameter1, parameter2, ..., calculation)

最も単純に、1 つのパラメータを持つ LAMBDA は次のようになります。

=LAMBDA(x, x*1.2)

どこ × は、最終的に関数に入力するセルまたは値のプレースホルダーです。この数式は単独で実際に #CALC をスローします。ロジックはありますが、それを計算するものがないため、エラーになります。セル内でテストするには、括弧内に入力を追加して直ちにセルを「呼び出す」必要があります。

=LAMBDA(x, x*1.2)((@Price))

実際の値は、名前を付けるときに表示されます。 Excelの使用 ネームマネージャー (経由して 数式 タブまたは Ctrl+F3)、そのロジックに名前を割り当てて、組み込み関数と同様に呼び出すことができます。

=ADD_TAX((@Price))

ネイティブの Excel ツールのように動作するようになりました。一度定義すれば、どこでも再利用できます。これは、税率やルールを調整する必要がある場合に最も重要です。調整を 1 か所で行うだけで、すべてのインスタンスが自動的に更新されます。

OS

Windows、macOS、iPhone、iPad、Android

無料トライアル

1ヶ月

Microsoft 365 には、最大 5 台のデバイスで Word、Excel、PowerPoint などの Office アプリ、1 TB の OneDrive ストレージなどへのアクセスが含まれています。


LAMBDA はスプレッドシートの日常的な一般的な問題を解決します

最大の効果を得るために小さなパターンに焦点を当てる

LAMBDA は上級ユーザーや複雑なモデルだけを対象としたものではありません。その価値のほとんどは、同じロジックが複数回出現する日常のスプレッドシート作業に現れます。

以下の例を読みながら理解するには、Excel ワークブックの無料コピーをダウンロードしてください。リンクをクリックすると、画面の右上隅にダウンロード ボタンが表示され、ファイルを開くと、別のワークシート タブの各例にアクセスできます。

例 1: 計算の合理化

標準的な乗数は簡単ですが、マージンを追加してから固定手数料を追加するなど、複数ステップの計算はテーブル間でコピーすると煩雑になります。 LAMBDA を事前定義された変数と組み合わせることで、計算全体を 1 か所から管理できます。

シナリオ: コストに基づいて定価を計算する必要があります。ルールとしては、25% のマークアップを適用し、その後一律 5.00 ドルの手数料を追加します。変数を定義しました: セル B2 名前が付けられています マージン、セル B3 名前が付けられています 手数料

変数テーブルと製品在庫テーブルを示す Excel スプレッドシート。

3 つのタブのルールに従う場合、変数は独自のシートに配置されます。ただし、例を理解しやすくするために、ここではそれらを同じワークシートに配置しました。

実行する必要がある手順は次のとおりです。

  1. を開きます ネームマネージャー数式 タブ。

  2. クリック 新しい

  3. 名前 フィールド、タイプ GET_LIST_PRICE、そして、 を指します フィールドに入力します =LAMBDA(コスト, (コスト * (1 + マージン)) + 手数料)

  4. クリック後 わかりました そして 近い 確認するには、次のように入力します =GET_LIST_PRICE((@コスト)) の最初のセルに 定価 欄を押して 入力。これにより、別の場所で式を再構築したりコピーしたりすることなく、定義したロジックを使用して各行の定価が計算されます。

後でマージンを 30% にするか、手数料を 7.00 ドルにすることを決定した場合は、単一のセルを更新すると、その変更は関数が使用されるすべての場所に適用されます。

スプレッドシートをテーマにした背景に、砂時計と青い目覚まし時計の横にある 3D Excel アイコンを持つ手。

Excel で手動で範囲に名前を付けるのをやめる: はるかに高速な方法があります

ヘッダーを読みやすい数式のデータに自動的にマッピングすることで、スプレッドシートを変換し、貴重な時間を節約します。

例 2: データのクリーンアップとフォーマットの標準化

データが「すぐに使用できる」状態で届くことはほとんどないため、余分なスペースや大文字小文字の一貫性のない問題などを修正するために複数のテキスト関数を組み合わせることがよくあります。 LAMBDA を使用すると、これらのクリーンアップ ステップを 1 つの再利用可能な関数にバンドルできます。

シナリオ: 先頭と末尾のスペース、大文字と小文字の混在など、名前が乱雑な連絡先リストを定期的にインポートします。これらの名前を新しい列で標準化したいと考えています。

書式設定されていないテキストを含む名前列と空のクリーン化された列を含むテーブルを示す Excel スプレッドシート。

これは必要な 1 回限りのワークフローです。

  1. ネームマネージャー (数式 タブ)、という新しい名前を作成します。 CLEAN_NAME。

  2. 次のロジックを使用します。 =LAMBDA(テキスト, PROPER(TRIM(テキスト)))

  3. データテーブルに関数を適用します。 =CLEAN_NAME((@名前))

これで、データの処理方法に関する単一の「信頼できる情報源」が得られました。要件が変更された場合 (すべて大文字に切り替えるなど)、名前マネージャーで PROPER を UPPER に交換するだけで、ワークブック全体のすべての名前が即座に修正されます。

通常、Excel でアクションを実行する方法は複数あります。たとえば、Power Query と Python を使用してデータを標準化することもできます。重要なのは、ワークフローに最適なものを選択することです。

さまざまな文字で囲まれた Excel のロゴ。

Excel でテキストと格闘するのはやめましょう: これら 8 つのツールはゲームチェンジャーです

Excel に組み込まれている従来のツールと最新のツールを使用して、「偽の」番号を修正し、隠れた Web スペースを削除し、テキストを専門的に結合します。

例 3: 複数ステップのロジックの簡略化

複雑なロジック チェックには、通常、深くネストされた IF ステートメントまたは複数のヘルパー列が必要です。 LAMBDA を使用すると、その複雑さを単一の説明的な名前にラップできます。

シナリオ: 遅延日数と注文金額に基づいて配送ステータスを判断する必要があります。 3日以上遅れた場合 そして 金額が 100 ドルを超える場合は「優先」です。それ以外の場合は「標準」です。

注文 ID、注文値、遅延日数、空の配送ステータス列を含む Excel テーブル。

これは複雑に見えますが、セットアップは簡単です。

  1. に行く 数式 > 名前マネージャーという名前の新しい関数を作成します。 CHECK_STATUS。

  2. パラメータとロジックを定義します。 =LAMBDA(日数, 値, IF(AND(日数 > 3, 値 > 100), “優先”, “標準”))

  3. 追跡テーブルに新しいカスタム数式を入力します。 =CHECK_STATUS((@(遅延日数)), (@(注文値)))

これにより、数式バーがきれいな状態に保たれ、ルールがすべての行にまったく同じ方法で適用されることを確信できます。しきい値を更新する必要がある場合は、名前マネージャーで数値を編集するだけです。

ヘルパー列は依然として便利です。これを使用すると、計算層でフィルターしたり、レポートにスライサーを追加したり、グループ化や分析用のピボットテーブル フィールドを提供したりできます。いつものように、データと目的に合ったアプローチを選択してください。


Excel の仕組みの変化

Excel に LAMBDA が登場したことで、ソフトウェアは単純なデータ グリッドから、よりプログラミング環境に近いものに移行しました。ロジックを 1 回限りの計算ではなく、再利用可能な構成要素として扱うことで、ワークブックの成長に合わせて管理および調整が容易になるワークブックの作成を開始できます。

基本的な数式の複製を超えて、LAMBDA ヘルパー関数を使用することが、より大きなデータセット全体にそのロジックを拡張するための次のステップとなります。

関連情報は以下のリンクからご確認いただけます

完全ガイドはこちら

関連記事

前の投稿
レクサス、初の3列電動SUVを発表、すべては高級感
次の投稿
Google Pixel の「ルール」は、Samsung のモードとルーチンと比較すると冗談です