在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

在這篇博文中,我將介紹如何使用 LuckyTemplates 中的一些函數(例如 DISTINCTCOUNT)來計算一段時間內銷售給多少客戶。實際上有幾種方法可以計算它,這就是為什麼我想創建一個簡短的教程來展示一些東西。您可以在本博客底部觀看本教程的完整視頻。

了解如何解決您設置的數據模型在此示例中至關重要,因此我一定要向您展示我是如何設置它的。這很重要,因為它不像在客戶表上放置一個 COUNT 那樣簡單。請記住,我們想要顯示我們的客戶數量如何隨時間變化,因此我們需要確保結果也將被我們的日期表過濾。

目錄

使用 DISTINCTCOUNT 計算您的客戶

在這篇文章中,我們將運行一些相對簡單的DAX 公式。想想這些東西是如何邏輯計算的,以及 DAX 如何與數據模型一起工作。因此,我們將快速審查數據模型。我們在底部有銷售表,在頂部有事實表:日期表、產品表、地區表和客戶表作為我們的查找表。這些表都是相連的。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

我們想看看我們每天銷售給多少客戶。這將展示我們可能在公式中遇到的一個小問題,但我將向您展示如何通過幾種方法實際解決它。通過這樣做,您可以了解數據模型中發生的情況。

公式 #1:計算出每天有多少客戶

我們需要做的第一件事是查看我們每天實際銷售給多少客戶。我們可以做的是創建一個度量並將其稱為Total Customers,然後使用 DISTINCTCOUNT 和 Customer Name。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

從邏輯上講,這就是您認為您需要做的:計算我們每天銷售給多少客戶。現在,這裡的問題是我們每天都得到完全相同的結果。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

我們得到這個的原因是因為公式將轉到 Customer 表並說明每天的不同客戶數是多少。問題是Dates 表與 Customer 表完全沒有關係;這兩個表的唯一關係是與 Sales 表的關係。對於放置在 Dates 表上的每個過濾器,當我們每天運行DISTINCTCOUNT時,Customer 表中沒有過濾任何東西,這就是我們得到完全相同結果的原因。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

如果我們想查看在任何特定日期我們銷售給了多少客戶,我們需要稍微更改此公式。我們需要以這樣的方式更改它,使其查看 Sales 表,因為這是 Date 表連接到的地方。當某些上下文放在結果上時,它會通過關係向下流動,並且會流動到它連接到的表,在本例中是 Sales 表。

公式 #2:創建一個新公式來顯示關係

為此,我們將創建另一個公式並將其命名為Total Customers 2。我們將再次使用 DISTINCTCOUNT,但不是使用 Customer 表,而是需要在 Sales 表中找到 Customer Name Index。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

一旦我們將這個新度量拖到表中,您就會看到每天有多少個唯一的客戶名稱索引。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

公式 #3:使用擴展表

這就是你如何以簡單的方式做到這一點。實際上還有另一種方法可以生成完全相同的結果。在 LuckyTemplates 中,從來沒有真正只有一種回答方法;總有幾種方法——有時甚至不止這些——可以達到你想要的結果。

讓我們創建另一個度量並將其稱為Total Customers 3。我們在 CALCULATE 內部要做的是引用我們創建的第一個 Total Customers 度量,它每天只生成 50 個,然後將整個 Sales 表添加為過濾器。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

一旦我們按下 enter 並將其拖到表中,您會看到計算需要一段時間,因為計算有點複雜。但正如您所見,它實際上生成的結果與正確的 Total Customers 2 完全相同。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

那是因為一個叫做expanded tables的概念。Sales 表在這裡實際表示的是我們數據模型的整個平面文件。有一個包含DatesProductsRegionsCustomers的大型平面文件。通過利用此技術和此公式,我們實質上使DAX 語言能夠通過在整個擴展的 Sales 表上計算來重新計算 Total Customers 度量。

在第一項措施中,沒有任何联系。因此,我們通過在計算語句中引用 Sales 擴展表來生成正確的結果,從而在第三個度量中創建了一個連接。

可視化數據

我通常只選擇我們創建的 #2 選項,這樣我們就可以開始使用面積圖將其可視化。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

我們可以通過時間了解我們每天實際銷售給多少客戶。我們還可以使用 LuckyTemplates 內置的分析功能來繪製趨勢線。我們可以看到平均每天有八到九名顧客。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

請記住,這也是動態的,因此我們可以引入我們可能想要添加的額外上下文。

在 LuckyTemplates 中使用 DISTINCTCOUNT 隨著時間的推移對客戶進行計數

我們已經介紹了一些概念,您可以將它們用於各種不同的事情;它可能不是客戶,而是產品、地區或銷售人員。它的核心是了解 DISTINCTCOUNT 的作用了解幕後的數據模型以確保您計算出正確的結果。

結論

這種技術會產生有趣的見解,您最終可以通過許多不同的方式利用和可視化它。想到的一種方法是通過情景分析。根據您可能從歷史客戶數量預測的預測,您可以看到,如果您增加銷售客戶的數量,您的結果可能會受到怎樣的影響。您可以使用估計的平均銷售價格在此基礎上運行場景,以得出每個客戶的平均價值。真正強大的東西。希望你能看到和我一樣的機會。

另一種可視化這種洞察力的方法是顯示隨時間的比較。也許您想累計顯示您已售出的客戶數量,並將其與上個月或上個季度進行比較。您將從這裡開始,然後使用時間智能函數“分支”出來。

課程中介紹瞭如何使用所有時間智能功能來完成這個時間比較分析。

祝你好運,如果你有任何想法,請在下面的評論部分告訴我。


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的