LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

ほとんどの DAX 初心者、さらには中級ユーザーであっても、  EARLIER関数の 機能を理解するのに非常に苦労しています。また、LuckyTemplates でこの関数をいつ、どのように、そしてなぜ使用する必要があるのか​​を理解するのに長い時間がかかりました。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

この記事では、 EARLIER 関数の使用法について詳しく説明します。EARLIER 関数の例とその効果的な使用方法を紹介します。

また、 EARLIER 関数をまったく使用する代わりに、より直感的に計算を実行する方法も紹介します。

目次

EARLIER 関数をいつどのように使用するか

歴史的には、EARLIER 関数は、特定の数式内の計算のコンテキストを操作する唯一の方法でした。しかし、VARIABLES が導入されて以来、以前ほど必須ではなくなりました。

ただし、DAX の知識を新しいレベルに引き上げたい場合は、EARLIER 関数を理解することが重要です。行とフィルターのコンテキストを完全に理解する必要があります。これらは、DAX 計算を使用する際に重要な概念です。

コンテキストの一般的な (しかし非常に重要な) 概念を簡単に修正するには、以下のリンクを参照してください。

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

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

行コンテキストの説明 – (1.10) DAX の究極の初心者ガイド

ここで実行するすべての例で Products テーブルを使用します。モデルをざっと見てみると、Products テーブルが Sales テーブル (ファクト テーブルとみなされます) までの関係を持つルックアップ テーブルであることがわかります。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

この特定のテーブル内の累積合計を計算したいと考えています。

最初の累積合計は一般的な合計です。この特定のテーブルにある製品名から派生した各製品の一般的なインデックスに基づいてそれを計算したいと考えました。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

次に私が行ったのは、Total Product Sales を Total Sales メジャー内に配置することです。この特定の式の重要な概念の 1 つは、コンテキスト遷移です。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

コンテキスト遷移と行コンテキスト

コンテキストの遷移は、式の中にメジャーを配置することで発生します。その後、行コンテキストからフィルター コンテキストに移動できます。

このようにして、この特定の結果が製品 1 に対してフィルタリングされます。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

ここではテーブルと計算列のコンテキストを理解することが重要であるため、ここで詳しく説明しました。この特定のケースでは、row contextを使用しています。

行コンテキストは、単一行ごとに評価が行われることを意味します。また、計算列のすべての行には、すべての行で行われた評価の結果が含まれます。

EARLIER関数を使用した累計の例

ここで、[Cumulative Product Sales] 列のこの特定の行に基づいて累計を計算し、それを計算列で実行したいと考えています。ここで、 LuckyTemplates のEARLIER関数が役に立ちます。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

この例の数式にはFILTER関数が含まれています。そして、この特定の式では、FILTER によって追加の行コンテキストが追加されます。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

この計算では行コンテキストから始めて、製品テーブルのすべての行を評価するフィルター関数を使用しました。

次に、Product テーブルのすべての行でインデックスが何であるかを確認し、そのインデックスが行内の特定の数値より小さいかどうかを評価します。

シナリオ 1: 製品インデックスが 8 以下である

この特定の行については、インデックスが 8 以下のものをすべて計算したいと考えています。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

Products テーブルのすべての行を評価し、8 以下のインデックス番号があるかどうかを判断する必要があります。

存在する場合、それらの特定の製品のすべての売上を計算したいと考えます。そして、下降するにつれて、レートが再評価されます。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

EARLIER を使用すると、ある行コンテキストから前の行コンテキストにジャンプして値を取得できます。

シナリオ 2: 製品インデックスが 10 以下である

次の例では、特定の結果は 10 です。製品インデックスが 10 以下であるかどうかを単一行ごとに評価したいと考えています。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

さて、累積合計の概念に詳しい方の中には、一般的な累積合計パターンで行うことなので、代わりにMAX関数を使用できると考える人もいるかもしれません 。

ただし、式にMAXを入力すると、常に最大積が評価されます。また、実際には特定の行の製品インデックスは評価されません。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

したがって、この行コンテキストから抜け出して、最初の行コンテキストに戻って製品インデックスを取得する必要があります。そしてそれがEARLIERのやっていることです。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

EARLIER関数使用すると、あるコンテキストから前の行コンテキストにジャンプできるため、必要な結果を取得できます。

シナリオ 3: 製品インデックスの代わりに製品ランキングを使用する

次の例では、売上に基づいて製品をランク付けしました。全員が座っている場所に基づいてランクも付けました。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

当社製品の売上高のトップは 864,000 ドルで、これは製品 63 です。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

では、ランキングをもとに累計を作成していきたいと思います。以前のインデックスを見る代わりに、実際には以前の製品売上ランキングを探しています。

したがって、この特定の製品テーブル内のすべての製品を調べて、製品ランキングがその特定の行の製品ランキング以下であるかどうかを評価する必要があります。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

EARLIER は、この行コンテキストから飛び出し、計算列内にいることによって作成された最初の行コンテキストに戻ります。

EARLIER 関数のより良い代替手段

EARLIER関数の使用は少し複雑になる場合があります。しかし、良いニュースは、LuckyTemplates でこれらの計算を行うためのより良い方法があるということです。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

VARIABLES は計算を行うためのはるかに優れた方法です。EARLIER をバイパスする方法を説明します。

この例では、フィルターによって作成された行コンテキストから飛び出す代わりに、実際には変数内の最初の行コンテキストで Product Index 値を取得するだけです。

そこで、EARLIER を取り出して変数 ProductIndexに入れました。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

ここでは、累積製品売上高がこの新しい形式でも完全に機能することがわかります。以前はどうだったかのようです。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

次の計算を使用して、ランキング別の累積製品売上高でもまったく同じことができます。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

次に、製品売上ランキング列を昇順に並べ替えると、最高ランクの製品が製品 63 であることがわかります。

LuckyTemplates で EARLIER 関数を使用する方法 – DAX チュートリアル

LuckyTemplates で予算または予測結果を累積的に計算する方法
DAX を使用して LuckyTemplates で複数のメトリックを累積的に比較する

結論

VARIABLESを使用することは、これまでに示したすべての例に取り組むためのはるかに優れた方法です。

正直に言うと、これまでに行った開発作業では、EARLIER関数をほとんど使用しませんでした。しかし、それでも知っておくと理解できる素晴らしい機能です。

LuckyTemplates のさまざまな領域で DAX を作成する場合、変数は重要です。ここで物事は非常にシンプルになります。

数式内のコンテキストに出入りする代わりに、実際に変数内で計算を開始したり、変数を含む計算を分離したりできるため、数式の実行がよりシームレスになります。

これらのリンクを参照して、このトピックに関する詳細情報を取得できます。

数式の構文、コメント、変数 – DAX の究極の初心者ガイド

LuckyTemplates で DAX 数式の変数を使用する方法

この特定の計算が LuckyTemplates 内でどのように動作するかをよく理解していただければ幸いです。

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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。