Popular Posts

基本的な Excel 数式を超えて: LAMBDA ヘルパー関数が新たな標準となる理由

基本的な Excel 数式を超えて: LAMBDA ヘルパー関数が新たな標準となる理由


Excel の Lambda ヘルパー関数は未来のものですが、どれを選択すべきかを知るのは本当の課題です。これは、関数と関数を照合し、最終的には自ら考えるスプレッドシートを作成するための頼りになるガイドです。

この記事では、Microsoft 365 用 Excel、Web 用 Excel、Excel モバイル アプリとタブレット アプリの最新バージョンで使用できる 5 つの反復子およびアキュムレーター ヘルパー関数について説明します。 SCAN は Excel 2024 でも利用できます。SCAN は、異なる役割を果たす他の 2 つのヘルパー関数、MAKEARRAY (ジェネレーター) と ISOMITTED (論理チェッカー) についてはカバーしていません。

エンジン: 30 秒のラムダ リフレッシャー

LAMBDA は、その場で作成するカスタム数式と考えてください。A2*0.15 のような固定セル参照の代わりに、パラメーターを定義します。

=LAMBDA(x,x*0.15)

どこ:

  • × 関数によって処理される値を表すパラメータです。
  • x*0.15 Excel でそのパラメーターに対して実行する計算です。

この式自体はあまり役に立ちません。そのロジックを取得してデータに適用するには、ドライバーが必要です。ここで LAMBDA ヘルパー関数が活躍します。

この実行では、T_Gadgets という名前の次のテーブルをデータ ソースとして使用し、その横または上の通常のセルに数式を入力します。

基本的な Excel 数式を超えて: LAMBDA ヘルパー関数が新たな標準となる理由

3 つの Excel テーブルに名前が付けられ、上部に Excel のロゴが表示されます。

Excel でテーブルの名前を変更しない場合は、今日から始めましょう。

名前には何が入っているのでしょうか?まあ、かなりの数です。

イテレータ (MAP、BYROW、BYCOL): 各セル、行、または列にロジックを適用します。

イテレーターはテーブルデータを調べて、LAMBDA ロジックを各項目に適用します。

MAP: 各セルにロジックを適用します。

構文

=MAP(配列,ラムダ(パラメータ,カウント))

客観的

T_Gadgets の各行の収益を計算し、10% 割引を適用したいと考えています。

利点

計算全体は 1 か所に残ります。これにより、結果内の個々の行は上書きできないため、ロジックの安全性が高まります。

セル F2 に入力する必要がある MAP 式は次のとおりです。

=MAP(T_Gadgets[Units],T_Gadgets[Price],LAMBDA(u,p,u*p*0.9))

どこ:

  • テーブル: T_ガジェット[Units],T_ガジェット[Price] これらは処理する列です。
  • パラメータ: その上 これらのパラメータは、各ラインからの単一の単位と価格です。
  • 計算: う*p*0.9 2 つの値を乗算し、10% の割引を適用します。
Excel の MAP 関数は、テーブル内の各行の収益を計算し、同時に割引を適用するために使用されます。

MAP を使用して並列列を結合します。 BYROW (下記) を使用して、各レコードを単一のデータのバンドルとして扱います。

BYROW: 各行の結果を取得します

構文

=BYROW(配列,LAMBDA(行,数))

客観的

T_Gadgets の単位と価格を水平方向に乗算して、各行 (日) の合計収益を取得したいと考えています。

利点

数百行にわたる数式を管理するのではなく、データセット全体にわたる 1 つのセル内で 1 つの数式を管理し、一貫性を確保します。

セル F2 の BYROW 式は次のとおりです。

=BYROW(T_Gadgets[[Units]:[Price]],LAMBDA(row,PRODUCT(row)))

どこ:

  • テーブル: T_ガジェット[[Units]: :[Price]】 両方の列を含む範囲です。
  • パラメータ: ライン データの水平行全体を表します。
  • 計算: 製品(ライン) その行で見つかった各値を乗算します。
BYROW は Excel で使用され、テーブル内の単位と価格を乗算して、各行 (日) の合計収益を取得します。

BYCOL: 各列の結果を取得します

構文

=BYCOL(配列,ラムダ(列,カウント))

客観的

T_Gadgets の Units 列と Price 列の最大値を見つける数式が必要です。

利点

BYCOL を 1 行で使用する その上 テーブルでは、ヘッダーの概要を作成します。これにより、巨大なテーブルを合計行まで下にスクロールする必要がなくなり、セキュリティと保守性のためにロジックが 1 つのセルに凝縮されます。

セル A1 の BYCOL 式は次のとおりです。

=BYCOL(T_Gadgets[#Data],LAMBDA(col,IFERROR(MAX(col),"")))

どこ:

  • テーブル: T_ガジェット[#Data] これにより、数式が水平方向にスケーラブルになることが保証されます。新しい列を追加すると、数式がそれを検出し、さらに右に展開します。
  • パラメータ: 大佐 垂直列全体を表します。
  • 計算: IFERROR(MAX(列),””) 各列の最大値を検索します。 IFERROR ラッパーは、AND や OR などのテキスト列でエラーを生成する関数を使用する場合に必要です。
BYCOL 関数は、テーブル内の Entities 列と Price 列の最大値を見つけるために使用されます。

MAX や SUM などの関数は、テキスト列に対して 0 を返すことがよくあります。数式の配置を崩さずにこの値を非表示にするには、ゼロを含むセルを選択し、[セルの書式設定]ダイアログ (Ctrl+1) でカスタム数値書式 ;;; を使用します。 (3 つのセミコロン) セルをアクティブなままにして値を非表示にします。

アキュムレータ (スキャンとリデュース): 作業を進めながら結果を構築します

アキュムレータにはメモリがあるため、テーブルの移動を追跡します。

スキャン: 累計または累計数を作成します。

構文

=scan(初期値,配列,ラムダ(アキュムレータ,値,カウント))

客観的

在庫不足を追跡するために、T_Gadgets の Units 列の毎日の累計を表示したいと考えています。

利点

=SUM($C$2:C2) のような従来の累計は、行を並べ替えたり削除したりすると壊れる可能性があります。 SCAN はロジックを単一セル内に保持するため、構造的な変更の影響を受けません。

この例では、セル F2 の SCAN 式は次のとおりです。

=SCAN(0,T_Gadgets[Units],LAMBDA(acc,val,acc+val))

どこ:

  • 初期値: 0 ここからカウントが始まります。
  • テーブル: T_ガジェット[Units] それがスキャンしている列です。
  • パラメータ: ACC、VAL パラメータは、前の合計を記憶するアキュムレータと、メモリに追加された現在のセルの値です。
  • 計算: acc+val それがメモリを更新するロジックです。
SCAN 関数は、Excel の表で販売されたユニットの毎日の合計金額を計算するために使用されます。

Reduce: 配列を最終的な 1 つの値に縮小します。

構文

=reduce(初期値,配列,ラムダ(アキュムレータ,値,カウント))

客観的

T_Gadgets の単位を合計したいとします。ただし、一括注文 (10 品目以上の販売) の場合に限ります。

利点

ネストされた SUMIF、ヘルパー列、または複数の中間ステップを避けて、マルチステップ ロジックを 1 つのセルにまとめます。

セル F2 に、次の REDUCE 式を入力します。

=REDUCE(0,T_Gadgets[Units],LAMBDA(acc,val,IF(val>10,acc+val,acc)))

どこ:

  • 初期値: 0 ヨガのスタート地点です。
  • テーブル: T_ガジェット[Units] どの列が削減されていますか?
  • パラメータ: ACC、VAL パラメーターは、関数の実行時に作成される最後の累積結果と、累積に追加される現在のセルの値です。
  • 計算: if(val>10,acc+val,acc) 合計が 10 より大きい場合にのみ値を加算します。
REDUCE 関数は、Excel でテーブル内の単位の列を合計するために使用されますが、10 品目を超える販売の場合にのみ使用されます。

TL;DR: どの Lambda ヘルパー関数が必要ですか?

このクイック リファレンスを使用して、タスクに最適な関数を決定してください。

あなたが望むなら…

使用…

完全なチュートリアル

各セルにロジックを適用する

地図

追加

各行の結果を取得する

ビロ

追加

各列の結果を取得する

ビコル

追加

現在の合計を作成する

スキャン

追加

合計値を取得する

減らす

追加


これらの LAMBDA ベースの関数を使用すると、Excel ワークブックが洗練された計算機から、正式にプログラミング言語とみなされる複雑な開発環境に変換されます。それで、何を待っているのですか?現在データセット全体で繰り返している計算を見つけて、それを単一セル関数に一元化します。もう以前の方法に戻ることはありません。

OS

Windows、macOS、iPhone、iPad、Android

無料トライアル

1ヶ月

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


Leave a Reply

Your email address will not be published. Required fields are marked *