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

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 内でどのように動作するかをよく理解していただければ幸いです。


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて