DAX を使用して選択した日付の前後の結果を表示する

DAX を使用して選択した日付の前後の結果を表示する

このチュートリアルを進める中で、 LuckyTemplates 内で実行できる真に強力な分析をいくつか紹介します。ここで分析しようとしているのは、選択した日付周辺の情報です。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

特定の時間枠を調べてから、選択した日付のコンテキスト内の範囲の日を調べます。その日の 3 日前である場合もあれば、その日の 10 日後である場合もあります。すべてはレポート内での選択によって決まります。基本的に、動的フィルターで任意の時間枠を選択すると、結果をフィルターすることもできます。

さらに、選択した日付に関する結果を表示する動的なビジュアライゼーションを作成する方法についても説明します。

正しくセットアップできれば、LuckyTemplates でソリューションを非常に柔軟に作成できるのは驚くべきことです。

「セットアップ」とは、何よりもまずデータ モデルを意味し、その後に適切な DAX 関数テクニックをレポートに追加することを意味します。

レポート内で動的に表示できる内容に関する柔軟性は非常に驚異的です。

共通の日付テーブルを使用するだけでは簡単ではないため、モデル内でこれを設定する方法について説明します。次に、必要なDAX の数式とロジックを示します。それほど難しいことではありませんが、少し特殊です。

目次

選択した日付の前後の結果を表示

ここでは、選択した日付の前後の結果を表示するクイック ダッシュボードのモックアップを作成しました。私がやりたいのは、実際に任意の日付の 1 つを選択し、その選択より前の一定期間を振り返ることです。

このサンプル レポートには、変更できるさまざまなコンテキストがあります。たとえば、日付をすぐに変更して、それまでの日数を確認できます。

さらに、フィルターインおよびフィルターアウトできる日数として、ここに「what-if パラメーター」を追加しました。数日間に変更することも、最大 20 日間まで変更することもできます。

DAX を使用して選択した日付の前後の結果を表示する

これが実際にどのように機能するかを理解すると、本当に驚かれるでしょう。ここで解決するのが最も難しいのは、追加のフィルターを使用せずに、両方の日付セレクターで選択されたすべての日を一度に表示する方法です。 

通常、レポート ページ上のすべてをフィルターする日付を選択することになります。ただし、ご覧のとおり、実際には特定のビジュアライゼーションには影響しません。

DAX を使用して選択した日付の前後の結果を表示する

最初に考慮する必要があるのは日付列です。スライサーで使用するとよいでしょう。実際にやりたいのは、日付列のみを持つ別のテーブルを作成することです。 

ここで戻って、一般的な日付テーブルがどのようなものかを見てみましょう。 

DAX を使用して選択した日付の前後の結果を表示する

ここで、選択内容が視覚化に直接影響を与えたくないため、別のテーブルを作成したいと思います。日付の選択を抽出して数式に入力したいだけです。そこで、次のような新しいテーブルを作成しました。これには、スライサーで使用する日付だけが含まれています。

New Table関数を使用してこの列またはテーブルを作成したくないことに注意してください。代わりに、クエリ エディターにジャンプする必要があります。

DAX を使用して選択した日付の前後の結果を表示する

日付テーブルを参照し、1 つおきの列を削除しました。これにより、最終的にテーブルは数式から導出されるのではなくハードコーディングされます。

DAX を使用して選択した日付の前後の結果を表示する

これは循環依存関係と呼ばれます。これは、日付テーブルと新しいテーブルの間にリレーションシップまたは 1 対多のリレーションシップを構築できることを意味します。ここで重要なことは、スライサーが引き続きフィルターできるように、この新しいテーブルをフィルターできることです。 

日付の背後にあるモデルの関係

これがモデルを設定する必要がある方法です。「Selection Date」という追加のテーブルを作成しました。念のため、Datesテーブル間にリレーションシップがある必要があります。

DAX を使用して選択した日付の前後の結果を表示する

これらのテーブル間にリレーションシップがある理由は、日付セレクターを動的にしたいためです。日付スライサーで選択した日付の範囲に基づいて拡大または縮小する必要があります。 

日付セレクターにすべての日付をリストするのは難しいため、これは非常に重要です。前述のテーブルにリレーションシップがない場合、日付セレクター内のすべての日付リストを下にスクロールするのは確かに困難であることがわかります。

さらに、日付セレクター内の一部の日付が日付スライサーのコンテキスト外にある場合、ビジュアライゼーションに空のデータが見つかる可能性があります。したがって、日付セレクターは、スライサーで選択した日付に従って特定の日付を表示するだけで済みます。

選択した日付からの売上を計算する

デートだけでなく、私が述べたテクニックを応用できるさまざまな方法がまだあります。たとえば、これを任意のルックアップ テーブルに適用できます。このテクニックを理解すると、コンテンツ レイヤーのコンテキストを重ねて利用して、さまざまなビジュアライゼーションを作成できるようになります。これは、分析的な視点と視覚的な視点に関して、素晴らしい追加知識となります。

ここで、 「Sales from Selected Dates by Date」テーブルを視覚化するための式を考えてみましょう。 実際に何が起こっているかを確認できるように、最初にそれを表に変換します。

DAX を使用して選択した日付の前後の結果を表示する

ご覧のとおり、計算は 2 つあります。Total Sales 列には、1 日あたりのすべての売上が表示されます。すると、「選択した日付からの売上」列に次のように表示されます。 

たとえば、選択した日付は 2016 年 8 月 26 日で、3 日間を振り返りたいとします。したがって、視覚化では 8 月 26 日、8 月 25 日、8 月 24 日だけを表示したいと考えています。

DAX を使用して選択した日付の前後の結果を表示する

ここで日数を変更することもできます。たとえば、4 日に延長します。それに伴い計算量も変わってきます。

これを行うための式は次のとおりです。

DAX を使用して選択した日付の前後の結果を表示する

どのような状況であっても、選択した日付を把握する必要がありました。また、その日を変数にハードコーディングする必要がありました。最後に、 ALL(Dates)でまとめました。これは、日付テーブルからの日付列であるためです。したがって、ここでは毎日、選択日テーブルにフィルターを配置します。 

選択した日付を抽出したいだけなので、コンテキストが削除されるように、実際の結果をすべての日付を含む関数内にラップする必要がありました。

次に、いくつかのロジックを実行する必要がありました。まず、現在の日付が、選択した日付と日数の差より大きいかどうかを確認します。次に、現在の日付が選択した日付以下であるかどうかを確認します。次に、 Total Salesの値を返します。それ以外の場合は空白にする必要があります。 

DAX を使用して選択した日付の前後の結果を表示する

それをビジュアライゼーションに持ち込むと、基本的にはそのように計算されます。したがって、 Day Numberパラメータの値を変更するか 、日付セレクターで特定の日を選択することができます。 

このチュートリアルのタイトルは「選択した日付の前または後の結果を表示する」ですが、ここで実際のアプリケーションを適用することもできます。日付別の合計売上高テーブルを見てください。たとえば、このような大幅な売上の急増が見られますが、これは販売期間または何らかのマーケティング イベントが原因である可能性があります。

DAX を使用して選択した日付の前後の結果を表示する

特定のイベントの特定の日数の流れや効果を表示できます。結果全体を 1 つのグラフで確認できます。たとえば、2016 年 4 月 20 日の売上を調べたいとします。基本的に、日付セレクターから20/04/2016を選択する必要があります。数式を変更すると、過去の日付ではなく 4 日間が表示されるようになります。


LuckyTemplates で現在日付または特定の日付までの結果を表示する LuckyTemplates で
複数の日付を操作する方法
LuckyTemplates の非標準日付テーブルの時間比較

結論

これが LuckyTemplates レポート内でいかにうまく強調表示されるかに非常に驚かれると思います。

列を複製し、レポート ページに異なるコンテキストを適用することは、強力なテクニックです。モデル、DAX 数式、または選択内容からこれらすべてを組み合わせることができれば、実際に非常にクールなビジュアライゼーションを作成できます。 

LuckyTemplates で使用するタイム インテリジェンス手法をさらに確認したい場合は、LuckyTemplates Online のコース モジュールを参照することをお勧めします。このモジュールは、特に時間関連の洞察に合わせたさまざまな分析に対応しています。

この詳細なビデオを楽しみながら作業してください。


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 ゲートウェイとは何ですか? 知っておくべきことすべて