虛擬變量:如何使用它們編寫更智能的 DAX

在本教程中,我將討論如何使用虛擬變量來編寫更好的 DAX 度量。這尤其適用於需要更複雜的 DAX 的情況。使用這種技術,您可以更靈活地處理不同的變量和條件。您可以在本博客底部觀看本教程的完整視頻。

中遇到的一個問題,我決定編寫本教程。

虛擬變量:如何使用它們編寫更智能的 DAX

基於這個問題,Harvey 希望將 Pareto 分析與一些附加標準結合起來。他想查看銷量排名前 20% 的產品,同時還要查看它與其他利潤率超過一定百分比的產品的交集。

目錄

銷售排名和利潤率截止的起草解決方案

根據 Harvey 提到的要求,我創建了一個解決方案草案,其中包含用於Sales RankProfit Margin Cutoff 的滑塊。

虛擬變量:如何使用它們編寫更智能的 DAX

根據您在這些滑塊上設置的參數,散點可視化將顯示滿足這兩個條件的產品

虛擬變量:如何使用它們編寫更智能的 DAX

假設Sales Rank 是 A,Profit Margin 是B。這基本上顯示了一個條件。這需要相對標準的 DAX 措施。這些顯示在右窗格中的度量下,其中我有Sales Rank,它使用基本的。我還有總成本、總利潤和其他從滑塊獲取值的變量。

虛擬變量:如何使用它們編寫更智能的 DAX

對 AND 條件使用虛擬變量

至於AND條件,正是這個措施完成了繁重的工作。

虛擬變量:如何使用它們編寫更智能的 DAX

在此度量中,您可能會注意到一些有趣的事情。基本上,這些條件通常用於 / 條件。但我沒有這樣做,而是使用了我稱之為虛擬變量的東西,如果條件為真,它得到一個 1。如果它為假,它得到一個 0。

虛擬變量:如何使用它們編寫更智能的 DAX

因此,此度量表明,如果銷售排名小於或等於銷售排名截止值,它會得到 1。如果利潤率大於利潤率截止值,它會得到 1。否則,它們會得到零。

這種方法在統計和回歸分析中非常常見,但在涉及 DAX 時也很有用。

我使用這種方法是因為我需要這些值用於下一部分,我通過將它們相乘來組合這兩個變量

虛擬變量:如何使用它們編寫更智能的 DAX

一旦將兩個虛擬變量RnkMarg組合在一起,我就可以繼續進行測量的下一部分。如果該組合值大於零,我分配紅色。如果不是,則將其分配為藍色。

虛擬變量:如何使用它們編寫更智能的 DAX

為 OR 條件使用虛擬變量

條件下使用這種方法怎麼辦?

您可以使用相同的過程,但是當涉及到組合變量的步驟時,請使用加號而不是星號

所以AND 條件需要像這樣的星號:

虛擬變量:如何使用它們編寫更智能的 DAX

OR 條件需要像這樣的加號:

虛擬變量:如何使用它們編寫更智能的 DAX

一旦你點擊接受,它就會將這些條件應用到散點圖上。滿足這些設定條件的產品將在此處顯示為這些紅點。

虛擬變量:如何使用它們編寫更智能的 DAX

為什麼虛擬變量起作用

如果您想知道為什麼這些虛擬變量起作用,我這裡有一些圖表可以提供幫助。

讓我們從AND條件開始。

虛擬變量:如何使用它們編寫更智能的 DAX

AND 表示兩個或所有條件都為真。這是以乘法為特徵的。一旦相乘,任何 FALSE 條件都會將整個項設置為 0。因此,如果您有兩個變量 A 和 B,並且兩者都為真,則乘積為 1,返回 TRUE。

但是,如果 A 等於零或 B 等於零,您會遇到三種情況,其中整個項將以零結尾。那就是十字路口。

另一方面,如果我們查看 OR 條件,則意味著其中一個或任何一個條件為真。這需要加法而不是乘法。因此,沒有單個 FALSE 集會導致 0,但只要任何一個條件為真,它就會將該條件遞增 1。

虛擬變量:如何使用它們編寫更智能的 DAX

所以在 OR 條件的圖表中,如果 A 和 B 都為 TRUE,則該項得到 2。如果 A 為假但 B 為真,則它得到 1。反向也得到 1,而你只得到 0如果兩個條件都為假。

虛擬變量在哪裡有用

顯然,對於簡單的情況,您可以使用基本的 AND 或 OR 條件。但是,當涉及到更複雜的情況時,這些方法將無法正常工作。這是一個例子。

虛擬變量:如何使用它們編寫更智能的 DAX

這個案例顯示了七個變量。A、B 和 C 的組合為真。D 和 E 或 F 和 G 的組合也是如此。

如果您要為這種情況編寫DAX 度量,您可以想像那將是多麼冗長和混亂。但是如果你應用虛擬變量,那麼你可以讓它變得更簡單。您只需替換這些運算符即可獲得更簡單的公式。

虛擬變量:如何使用它們編寫更智能的 DAX

從那裡開始,您使用的條件是,如果結果大於 0,則為 TRUE。如果結果等於 0,那麼您將得到一個 FALSE。

讓我們回到 LuckyTemplates 文件,看看它在實際報表中是如何工作的。

所以在這種情況下,紅點表示兩個條件都為真,而紫點表示只有一個條件為真。

虛擬變量:如何使用它們編寫更智能的 DAX

進入度量,您將看到虛擬變量 Rnk 和 Marg,其中我們有一個OR 條件,如加號所示

虛擬變量:如何使用它們編寫更智能的 DAX

然後,您還會看到在 TRUE構造下,您有一個 2 導致紅色,這意味著您有兩個TRUE語句。如果其中一個陳述為真,它就會變成紫色。如果兩者都不為真,則結果為 0,這將向您顯示藍點。

虛擬變量:如何使用它們編寫更智能的 DAX

這直接對應於我們之前談到的 OR 圖矩陣。

回到我們的最後一個條件,我們可以看看如果我們想查看兩組異常值會發生什麼。基本上,如果我們想查看同時滿足條件 A 和 B 的內容,則此處代表產品 4 和 15 的兩個點滿足該條件。

虛擬變量:如何使用它們編寫更智能的 DAX

另一方面,您還可以查看底部異常值,即產品 1。

虛擬變量:如何使用它們編寫更智能的 DAX

還要記住,整個報告是動態的。因此,您移動滑塊的次數越多,您可能看到的點就越多。

查看下面的度量,它顯示了我們討論的最後一個案例,其中有四個虛擬變量——最高排名 (TopRnk)、大於或等於邊距的值 (GTEMarg)、最低排名 (BotRank) 和小於或等於保證金 (LEMar)。

虛擬變量:如何使用它們編寫更智能的 DAX

查看組合值,我們將 TopRnk 和 GTEMarg 相乘,然後將其添加到 BotRank 和 LEMarg 的乘積。

虛擬變量:如何使用它們編寫更智能的 DAX

如果這些條件中的任何一個返回為 TRUE,那麼圖表上將顯示一個紅點。如果不是,它將顯示一個藍點。

虛擬變量:如何使用它們編寫更智能的 DAX


在 LuckyTemplates 中對多個 IF 語句使用高級 DAX
如何在 LuckyTemplates 中使用 SWITCH True Logic LuckyTemplates
中的 DAX 函數:使用迭代器

結論

通過使用和組合這些虛擬變量,與文本 TRUE/FALSE 度量所需的通常複雜的 DAX 度量相比,您可以使用簡單的度量獲得所需的結果。

開始在您過去使用 TRUE 或 FALSE 條件的其他報告上嘗試這種方法,看看當您使條件變得更複雜時這會如何影響您的措施。

一切順利,

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 用戶最初應該了解的主要主題之一。