如何最大限度地利用 INTERSECT 函數 – 高級 DAX

LuckyTemplates 中的INTERSECT 函數是一個高級表函數,您需要更好地理解它,以便最大限度地利用這個高級 DAX。您可以在本博客底部觀看本教程的完整視頻。

但是 要了解它是如何工作的,您需要更好地理解虛擬表。在 LuckyTemplates 中使用 DAX 度量時,虛擬表是一個關鍵概念。

INTERSECT 函數的具體作用是它允許您在度量範圍內將一個虛擬表與另一個虛擬表進行比較。然後您將最終能夠返回出現在這兩個虛擬表的兩個版本中的結果表。

當您了解瞭如何使用此功能後,您很快就會發現在輕鬆運行一些非常高級的邏輯方面有一項驚人的功能。

目錄

使用 INTERSECT 函數展示獨特的見解

在我運行的示例中,我將展示您可以使用函數發現的真正獨特的見解。這種特殊的洞察力可以以多種不同的方式重複使用。當您處理客戶數據並且您的目標是更好地了解您的客戶時,這是最有用的。

學習此功能的最佳方式是通過實際場景。因此,我將研究一個場景,並根據我們當月的客戶來解決這個問題。這些客戶還應該有過去兩個月的購買歷史記錄。我們將弄清楚哪些當前客戶在 2 個月前有過訂單交易。

看看我為演示函數而創建的這個 LuckyTemplates 報表。首先,我在左側設置了一些過濾器,我們可以在其中選擇任何月份。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

然後,我有所有客戶的專欄。Total SalesSales LM列顯示了當月和上個月購買歷史記錄的客戶。總銷售額的公式非常簡單。它只是來自某個客戶的所有銷售額的總和。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

Sales LM公式是一個簡單的總銷售額公式,它使用DATEADD跳回上個月,分支為時間智能計算。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

了解公式的初始上下文很重要,因為我們正在使用上述公式啟用上個月的計算。因此,我們需要獲得正確的初始上下文,以便我們可以應用 DAX 公式。

我們如何動態計算出連續兩個月購買的客戶?這就是您可以在Customers 2M in A Row列中看到的內容。

現在,我還想知道這些客戶的總銷售額,因此我添加了Sales from Customers 2M in A Row列。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

使用INTERSECT函數識別回頭客

讓我們來看看INTERSECT在尋找回頭客方面有多大用處。這是Customers 2M In A Row的公式。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

在這個公式中,我放置了兩個虛擬表,它們是INTERSECT函數內的輸出變量 ( VAR ) 。基本上,它評估存在於第一個表中但不存在於第二個表中的項目或行的列表。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

這裡的初始表是CustomerTM,代表本月購買的客戶。然後,該公式繼續檢查這些客戶是否也列在CustomerLM表中。

如果一個客戶存在於兩個虛擬表中,他們將被保留。因此,這個公式允許我們最終得到本月和前一個月購買的所有客戶。

接下來,我使用函數來計算那些剩餘的客戶。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

現在,讓我們談談為連續購買 2 個月的客戶創建虛擬表。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

如果您注意到了,我將它們放在了變量)函數中。我強烈推薦這些函數,因為它們是編寫更複雜公式的絕佳補充。 

在VAR CustomerTM的這個特定集合中,我正在創建一個客戶 ID 的虛擬表。然後,對於VAR CustomerLM,我上個月再次為我們的客戶創建了一個虛擬表。但是這一次,我添加了函數,這樣它就可以跳回到上個月的客戶集,而不是當前上下文。

這是我們現在進行的計算的有趣之處。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

該公式僅檢查客戶的每一行,因為客戶已被過濾。如果特定行(客戶)上個月沒有銷售額,則無需評估。因此,Customers 2M In A Row列為空白。但如果客戶有以前的記錄,則計為1

例如,如果我們查看 Adam Thompson 的數據,它會在Customers 2M In A Row列下返回​​ 1。這意味著該客戶有上個月和前兩個月的記錄。

為另一個上下文重用公式

您可能沒有立即意識到使用INTERSECT的重要性,但是您有充分的理由需要使用此公式。這主要是因為您可以在各種上下文中重複使用此計算。看看下面的這個例子。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

為了得出上面的樣本數據,我只是使用了相同的公式。但這一次,我從不同的初始環境開始。它不是評估一行,而是評估許多上下文,例如州代碼。然後,它會創建一個在 2016 年 6 月和 2016 年 5 月購買過的客戶列表。然後,我會將其與當月在特定狀態下購買過一次的客戶進行比較。

您可以在Customers 2M In A Row列中查看符合該條件的客戶的確切數量。

該表下方是另一個可視化效果,它展示了Customers 2M In A Row by State Code的相同數據。

實際上,您可以根據需要再次更改模型中的上下文。如果您的過濾器工作正常,您可以重新應用此公式以添加到其他情況。

這就是為什麼我說INTERSECT非常強大。您可以將這些INTERSECT函數用於您的公式,而不僅僅是編寫IF語句。

計算回頭客的總銷售額

此外,我們計算回頭客的銷售總數

Sales from Customers 2M In A Row列中的結果是客戶當月購買量和上個月購買量的總和。請注意,如果客戶連續購買了兩個月,我們才能得到這個結果。 

這是回頭客的總銷售額的公式。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

你可以在這裡看到模式幾乎完全相同。這裡唯一的區別是我使用CALCULATE函數而不是COUNTROWS來更改計算的上下文。 

這是因為我們這裡需要的是客戶的銷售總額。但如您所見,我仍在使用INTERSECT函數。這對 Pareto 分析非常有幫助。但您也可以通過多種不同方式應用此功能。

為過去三個月的客戶整合 INTERSECT

你仍然可以比以前更進一步。您實際上可以使用以下公式計算連續三個月購買的客戶。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

我所添加的只是一個不同的計算,它跳回兩個月,而不是一個。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

之後,我在另一個INTERSECT函數中添加了一個INTERSECT函數。因此,它不僅會評估當月的客戶及其上個月的購買歷史記錄。它還將檢查特定客戶是否也在 2 個月前購買過。

要將此數據添加到表中,只需將Customers 3M In A Row公式拖到表中即可。

如何最大限度地利用 INTERSECT 函數 – 高級 DAX

您會在底部看到共有45 位客戶連續三個月購買。這是一個相當深入的洞察力,非常有用。


如何理解 LuckyTemplates 中迭代函數內部的虛擬表
深入研究 RANKX – LuckyTemplates 中的 DAX 公式
概念

結論

如前所述,INTERSECT是一個表函數,可以以多種不同的方式使用。

本教程的重點是讓您了解如何在度量中以及在度量中以各種方式使用它。這就是我認為可以以非常有效的方式使用它來運行一些非常引人注目的分析的方式。

祝您順利學習此高級 LuckyTemplates 教程。

Leave a Comment

在 Power Automate 中執行直到循環控制

在 Power Automate 中執行直到循環控制

了解有關 Do Until 循環控制如何在 Power Automate 流中工作的基礎過程,並熟悉所需的變量。

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

受限於 LuckyTemplates 中提供的標準視覺效果?學習使用 Deneb 和 Vega-Lite 為 LuckyTemplates 創建自定義視覺對象,提升您的數據可視化能力。

在 Power Automate Desktop 中將日期添加到文件名

在 Power Automate Desktop 中將日期添加到文件名

在此博客中,您將了解如何使用 Power Automate Desktop 自動將日期添加到文件名的開頭或結尾。

Power Query:如何快速添加註釋

Power Query:如何快速添加註釋

找出幾種不同的方法在 Power Query 中添加註釋,這對於不喜歡記筆記的人非常有幫助。

Power Apps – SharePoint 集成指南

Power Apps – SharePoint 集成指南

在此博客中,您將了解 MS Power Apps 界面的基礎知識並了解 Power Apps-SharePoint 集成的過程。

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

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

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

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

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

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

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

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

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

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

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

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

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

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