LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

このブログ投稿では、LuckyTemplates 内の DISTINCTCOUNT などのいくつかの関数を使用して、経時的に販売する顧客の数を計算する方法を説明します。実際には計算方法がいくつかあります。そのため、いくつかのことを紹介するために、それに関する短いチュートリアルを作成したいと思いました。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

この例では、設定したデータ モデルを回避する方法を理解することが重要です。そのため、これをどのように設定したかを必ず示します。これは顧客テーブルに COUNT を配置するほど簡単ではないため、重要です。顧客数が時間の経過とともにどのように変化するかを示したいので、結果が日付テーブルによってもフィルターされていることを確認する必要があることに注意してください。

目次

DISTINCTCOUNT を使用して顧客を数える

この投稿では、比較的単純なDAX 式をいくつか見ていきます。これらがどのように論理的に計算されるのか、そして DAX がデータ モデルとどのように連携するのかを考えてみましょう。そこで、データ モデルを簡単に確認します。一番下に Sales テーブル、一番上にファクト テーブルがあります。ルックアップ テーブルとして、日付テーブル、製品テーブル、地域テーブル、顧客テーブルがあります。これらのテーブルはすべて接続されています。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

1 日に何人の顧客に販売しているかを確認したいと考えています。ここでは、この数式で発生する可能性のあるわずかな問題を紹介しますが、実際にいくつかの方法で問題を解決する方法を説明します。そうすることで、データ モデルで何が起こっているかを理解できるようになります。

計算式 #1: 1 日あたりの顧客数を計算する

まず最初に行う必要があるのは、1 日に実際に何人の顧客に販売したかを確認することです。できることは、メジャーを作成してそれをTotal Customers という名前にし、DISTINCTCOUNT と Customer Name を使用することです。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

論理的には、これがあなたが行う必要があると考えられることです。毎日何人の顧客に販売しているかを数えてください。ここでの問題は、毎日まったく同じ結果が得られることです。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

これが得られる理由は、数式が Customer テーブルに送られ、毎日の個別の顧客数を示しているためです。問題は、Dates テーブルが Customer テーブルとまったく関係がないことです。これらのテーブルの両方にある唯一の関係は、Sales テーブルとの関係です。毎日DISTINCTCOUNT を実行すると、Dates テーブルに配置されたすべてのフィルターについて Customer テーブルでは何もフィルターされないため、まったく同じ結果が得られます。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

特定の日に販売した顧客の数を調べたい場合は、この式を多少変更する必要があります。Date テーブルが接続されている場所である Sales テーブルを参照するように変更する必要があります。何らかのコンテキストが結果に配置されると、コンテキストはリレーションシップを介して流れ、接続先のテーブル (この場合は Sales テーブル) に流れます。

式 #2: 関係を示す新しい式を作成する

これを達成するために、別の数式を作成し、それをTotal Customers 2と呼びます。再び DISTINCTCOUNT を使用しますが、Customer テーブルを使用する代わりに、Sales テーブル内の顧客名インデックスを見つける必要があります。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

この新しいメジャーをテーブルにドラッグすると、毎日の固有の顧客名インデックスの数が表示されます。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

式 #3: 拡張されたテーブルの使用

ということで、簡単な方法でやってみます。実は、まったく同じ結果を生成する別の方法があります。LuckyTemplates で答える方法は実際には 1 つだけということはありません。望ましい結果を達成するには、常にいくつかの方法があり、場合によってはそれ以上の方法もあります。

別のメジャーを作成し、Total Customers 3という名前を付けてみましょう。CALCULATE 内で行うことは、作成した最初の Total Customers メジャー (毎日 50 を生成するメジャー) を参照し、Sales テーブル全体をフィルターとして追加することです。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

Enter キーを押してテーブルにドラッグすると、計算が少し複雑になるため、計算に時間がかかることがわかります。しかし、ご覧のとおり、実際には正しい総顧客数 2 とまったく同じ結果が生成されています。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

これは、拡張テーブルと呼ばれる概念によるものです。ここで Sales テーブルが実際に表すものは、データ モデルのフラット ファイル全体です。DatesProductsRegionalCustomersを含む 1 つの巨大なフラット ファイルがあります。この手法とこの数式を利用することで、基本的にDAX 言語で展開された Sales テーブル全体にわたってTotal Customers メジャーを再計算できるようになります。

最初の小節ではつながりがなかった。そこで、正しい結果を生成するために、計算ステートメント内で Sales 展開テーブルを参照することにより、3 番目のメジャーに接続を作成しました。

データの視覚化

通常は、面グラフを使用して視覚化を開始できるように、作成した #2 のオプションを選択します。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

1 日に実際に何人の顧客に販売しているかを時間の経過とともに確認できます。LuckyTemplates 内の組み込み分析関数を使用して傾向線を描くこともできます。1 日あたり平均して 8 ~ 9 人の顧客がいることがわかります。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

これもすべて動的であるため、追加したい追加のコンテキストを取り込むことができることに注意してください。

LuckyTemplates で DISTINCTCOUNT を使用して経時的に顧客をカウントする

いくつかの概念を説明しましたが、それらはさまざまな用途に使用できます。顧客ではなく、製品、地域、または販売員である可能性があります。その中心となるのは、DISTINCTCOUNT の動作を理解し、正しい結果を計算していることを確認するために舞台裏でデータ モデルを理解することです。

結論

この手法により興味深い洞察が得られ、最終的にはこれをさまざまな方法で利用して視覚化することができます。思い浮かぶ方法の 1 つは、シナリオ分析によるものです。過去の顧客数から将来を予測する予測に基づいて、販売する顧客の数を増やした場合に業績にどのような影響が出るかを確認できます。推定平均販売価格を使用してこれに対してシナリオを実行し、顧客ごとの平均値を導き出すことができます。本当に強力なものです。これで私と同じチャンスが得られることを願っています。

この種の洞察を視覚化するもう 1 つの方法は、時間の経過に伴う比較を示すことです。販売した顧客の数を累積的に表示し、先月または前四半期と比較したい場合があります。ここから開始して、タイム インテリジェンス関数を使用して「分岐」します。

コースでは、常時インテリジェンス関数を使用してこの時間比較分析を完了する方法を説明します。

これの実装を頑張ってください。何かご意見があれば、以下のコメント欄でお知らせください。


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