LuckyTemplates の行コンテキストの説明

DAX が行コンテキストでどのように機能するかを理解することに関して、ほとんどの人が混乱していることがわかりました。これは、行のコンテキストが非常に複雑になり、不必要に複雑になる可能性があるためです。したがって、この記事では行コンテキストについて触れていきます。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

行コンテキストについて私が考える方法は、反復または反復関数を通じてです。頭の中でその区別をするとすぐに、計算エンジンで実際に何が起こっているのかという点で、より意味がわかるようになりました。

要約として、コンテキストには評価コンテキストフィルター コンテキスト行コンテキストの 3 種類があることを説明しました。

DAX 計算は 2 段階のプロセスで行われます。評価コンテキストは常に最初に行われ、その後、作成する関数に応じてフィルター コンテキストまたは行コンテキストのいずれかに分岐します。

目次

行コンテキストを理解する

行コンテキストは反復処理がすべてです。

いくつかの例を示します。バックエンドで行コンテキストが実際にどのような動作をするかを理解するのに役立つことを願っています。

行コンテキスト VS フィルター コンテキスト

この例では、式は単純な集計であるため、フィルター コンテキストを介して計算されます。すべての初期フィルターが設定された後、数量列全体が合計されます。

LuckyTemplates の行コンテキストの説明

Sales テーブルの最初のフィルターは Product 1 です。販売されたすべての数量を合計すると、165 になります。

LuckyTemplates の行コンテキストの説明

次に、まったく同じ結果を得る方法を説明しますが、計算方法は大きく異なります。まず、反復式を使用して、販売数量反復の新しいメジャーを作成します。

LuckyTemplates の行コンテキストの説明

反復関数の例には、SUMXAVERAGEXMANYXCOUNTX などがあります。この場合、 SUMX を使用します。

SUMX関数はテーブルを入れるように要求したので、Sales テーブルを入れます。そして、式を求められたので、数量列に入力しました。

この関数は最初の関数とはまったく異なりますが、ドラッグするとまったく同じ結果が得られます。

LuckyTemplates の行コンテキストの説明

最終的には同じ計算なので、まったく同じ結果が得られます。別の方法で計算されただけです。

LuckyTemplates の行コンテキストの説明

販売数量の反復は行コンテキストを使用して計算され、合計販売数量はフィルター コンテキストを使用して計算されました。

行コンテキストを使用した販売数量の反復計算

それでは、販売数量の反復がどのように計算されるかを段階的に見てみましょう。まず、最初の評価コンテキスト (この場合は製品 1) を離れることを忘れないでください。次に、row contextを介して、指定したテーブル内のすべての行を反復処理します。

この場合、Sales テーブルを指定し、Quantity 列のすべての行を調べます。

LuckyTemplates の行コンテキストの説明

初期評価中に、製品 1 は、製品 ID 列でフィルターされたものによって決定されます。次に、「数量」列の下の行をカウントアップします。行にヒットするたびに、結果がメモリに保存されます。

テーブルの一番下に到達すると、メモリに保存されているすべての結果を評価し、要求されたあらゆる計算 (この場合は SUMX ) を実行します

LuckyTemplates の行コンテキストの説明

行コンテキストや反復関数を使用する理由

これは、反復関数内ではるかに複雑な処理を実行できるためです。内部には非常に高度なロジックを記述することができます。

LuckyTemplates の行コンテキストの説明

たとえば、Sales テーブルのすべての行について、数量は 2 倍されます。同じ計算プロセスが実行されているにもかかわらず、異なる結果が得られていることがわかります。

LuckyTemplates の行コンテキストの説明

これは、行ごとに異なるロジックを作成しているためです。数量列のすべての行を調べた後、値を 2 倍してメモリに保存します。その最後にSUMを実行します。

ここには、 IFSWITCHロジックなどの高度なロジックを含むさまざまな内容を記述することもできます。

LuckyTemplates の行コンテキストの説明

計算を実行するには、集計関数やフィルターコンテキストではなく、反復関数や行コンテキストを使用した方がよい例が山ほどあります。

LuckyTemplates のコンテキストを理解するための重要な注意事項

コンテキストに関するすべての重要なことを要約するには、DAX での計算は 2 段階のプロセスを介して行われることを思い出してください。最初のステップは常に評価コンテキストです評価のコンテキストが何であるかが非常に重要です。

個々の結果の評価コンテキストが何であるかを理解すると、DAX は 2 つの異なる方法に分岐します。フィルター コンテキストまたは行コンテキストを介して計算できます。

どのコンテキストを使用するかは、作成する数式によって異なります。したがって、単純な集計式を作成すると、フィルタ コンテキストを介して計算が行われます。ただし、 SUMX のような反復関数を作成すると、行コンテキストを介して数式が計算されます。

DAX をもう少し上級になれば、実際に同じ関数内に複数のコンテキストを含めることができます。しかし、そこに到達する前に、コンテキストが最も単純な形でどのようなものであるかを本当に理解する必要があります。

結論

DAX を学習し、より高度な作業を実行したいと考えている場合、コンテキストの種類を理解することは非常に重要です。本当に高度な DAX 数式を書き始めると、複数のコンテキストが同時に動作するため、目的の結果を達成するためにその数式の各部分が何を行っているかを理解する必要があります。

LuckyTemplates 内での行コンテキストのアプリケーションについて詳しく学ぶための推奨リンクをいくつか示します。

評価コンテキスト – (1.8) DAX の究極の初心者ガイド

フィルター コンテキスト – (1.9) DAX の究極の初心者ガイド

この作業を楽しんでください。

Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。