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 のコース モジュールを参照することをお勧めします。このモジュールは、特に時間関連の洞察に合わせたさまざまな分析に対応しています。

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

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