LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

在本教程中,我將介紹有關虛擬表的一個非常有趣的主題,以及如何在 LuckyTemplates 中的迭代函數中使用它們。您可以在本博客底部觀看本教程的完整視頻。

虛擬表是在 LuckyTemplates 中創建高級邏輯的基本要素LuckyTemplates 中有一整套功能子集,可讓您創建這些虛擬表。

這些虛擬表有時只能用作過濾器和函數,或將上下文添加到計算中。但是,它們還允許您在內部通過它們迭代邏輯。它可以基於您將它們置於其中的任何上下文。

當您將它們與各種迭代函數一起使用時,這些虛擬表的許多功能就會發揮出來。您必須真正了解“背景”以及這些DAX指標的組合如何在特定背景下協同工作。

DAX中的迭代函數通常在末尾有一個X ,例如SUMXAVERAGEX和 LuckyTemplates 中 X 公式的許多其他派生詞。

解釋我想在本教程中討論的概念的最佳方式是通過一些使用這個簡單模型的示例。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

從我的Locations表,我有一個向下流到我的Sales表的關係。這可能看起來很普通,您可能想知道如何應用這種模型。

好吧,實際上,所有數據都是如此相似。只需要很好地設置您的模型並以直觀的方式進行設置即可。如果您需要更好地了解您的建模,可以查看我們的高級建模課程。

目錄

使用 SUMX 的簡單邏輯

讓我們看看這個簡單的邏輯,您可以在其中使用計算總銷售額

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

通常,它只是計算每個地區的銷售額。在這種情況下,我們的數據沒有其他過濾器。所以,它基本上只是從一開始就與總銷售額一起。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

但是,我想向您展示一些更獨特的東西,即我們如何通過這些虛擬表迭代邏輯。

對虛擬表使用 FILTER

有時您可能想要開始計算不同的事物。您可能想要做的是計算可歸類為優質客戶的銷售額

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

讓我們嘗試分析這個特定的公式並確定它允許我們做什麼。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

所以,您會在這裡看到我們正在使用SUMX

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

但是,對於這部分措施,我們正在改變我們用作計算上下文的虛擬表

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

因此,您始終需要記住,LuckyTemplates 中的任何計算都分兩步進行。首先是初始上下文的處理。然後是度量計算。這絕對是一個非常簡化的版本。

讓我們看一下第一個結果,其中第一個過濾器是Connecticut。顯然,模型背後已經發生了一些過濾。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

函數中的處理邏輯創建了一個包含在Connecticut購買過的所有客戶的虛擬表。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

它基本上只是在Connecticut購買過的所有客戶的單列表。

然後,在這個特定的虛擬表中,我們正在運行一個邏輯,該邏輯將過濾掉每一個購買量低於 2000 的客戶。這將只保留那些購買量超過 2000 的客戶。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

基於這個新表,我們最終要計算Total Sales

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

這就是SUMX允許我們做的。這確實是一種您可以通過多種方式實施的技術。

改變虛擬表的邏輯

此外,您可以更改現有邏輯。如您所見,這個數字目前是靜態的。但是你可以讓它動態化,你可以自己生成它。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

在這種情況下,我只是將其更改為 5,000。而且因為我們使用了SUMX,這個表將只查找購買超過5000的好客戶。然後它會統計那些好客戶的銷售額。

對虛擬表使用 SUMMARIZE

這是您可以提升到另一個層次的另一個示例。

FILTER函數中的表格可以非常不同,可以是更詳細的表格。在這種情況下,我們同時查看好客戶的銷售額和他們購買的產品

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

因此,這將不再是單列虛擬表。這將是一個包含每個客戶和他們在康涅狄格州購買的每個產品的雙列虛擬表。然後,當你去到不同的地區或不同的州時,它會發生變化。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

使用函數,我們將過濾掉所有小於 2000 的客戶和產品銷售額。然後只保留大於 2000 的客戶和產品銷售額

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

之後,我們將使用SUMX計算總銷售額

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

這實際上就是您如何通過虛擬表在內部迭代某些邏輯並評估特定結果。

使用 CALCULATE 作為過濾器

而且,你可以用另一種方​​式來計算同樣的場景,它仍然會給你同樣的結果。讓我們先把它變回5000

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

現在,您在這裡看到這兩列中的結果現在實際上是相同的。但我用稍微不同的方式計算了它。

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

對於Good Customer Sales度量,我們使用函數而不是SUMX

LuckyTemplates 中迭代函數中的虛擬表 – DAX 概念

CALCULATE函數使您能夠對我們之前的SUMX場景執行類似的操作。但是,它不是一個迭代函數(就像SUMX一樣),它實際上被用作一個過濾器。它用於更改CALCULATE 中計算的上下文。

這是在數據模型中應用此邏輯的另一種方式。


在 LuckyTemplates 中使用 DAX 掌握虛擬表 在
LuckyTemplates 中使用迭代函數 SUMX 和 AVERAGEX
在 DAX 中使用迭代函數

結論

這是一個非常好的深度複習教程。理解通過虛擬表迭代邏輯的概念將為您提供無限的分析可能性,您可以在任何數據中實現這些可能性。

如果你能很好地理解這一點,你就會開始發現,在很好地利用 LuckyTemplates 和 DAX 度量時,從分析的角度來看,真的沒有什麼是你無法發現的。

如果您想了解有關將多個 DAX 函數組合在一起以獲得最佳效果的更多信息,請查看模塊。

祝你好運!

***** Learning LuckyTemplates?*****







什麼是 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 網關?所有你必須知道的