為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

使用變量是確保您的結果在測量結束時按照應有的方式相加的好方法。變量是在 LuckyTemplates 中編寫和求解公式的重要組成部分,我將向您展示原因。您可以在本博客底部觀看本教程的完整視頻。

目錄

甘特圖中可視化的樣本數據

為了展示在 DAX 度量中使用變量的重要性,我將使用這個相當複雜的公式作為示例。我將其用於 LuckyTemplates 最近關於項目管理的會員制活動。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

為了可視化數據,我創建了這個獨特的甘特圖。您會看到其中嵌入了很多邏輯,允許我對顯示信息的數據進行顏色編碼,例如項目何時開始、何時結束等。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

讓我們快速回顧一下這張圖表背後的數據。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

您會看到我有特定項目中每項任務的開始和結束日期。增加公式複雜性的是我還有一個用於 %Completion 的列。

我如何在圖表中可視化完成率?這是通過顯示根據每個類別的不同實時任務逐項列出的當前實時任務來展示的。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

我還必須在圖表上為每個不同項目中的不同任務類別使用多種不同的顏色,所以我最終在矩陣中使用條件格式來實現這一切。 

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

現在,當我瀏覽 LuckyTemplates 支持論壇時,我經常會看到用戶在處理這樣的數據時使用非常複雜的公式。事實上,其中很多應該分解成變量。

在復雜公式中使用變量

不管您要計算什麼,我只想向您展示如果您沒有那麼多使用變量,您應該瞄準的設置。我想讓你明白為什麼你需要在這裡使用變量,以及我是如何使用它們來實際完成這項工作的。

您實際上可以在變量中引用變量。這意味著您可以在 RETURN 下輸入任何內容之前進行大量計算。 

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

請務必記住,每個結果都是在 LuckyTemplates 中單獨計算的。因此,您還必須考慮每個單獨結果的上下文。

所以您會看到我對 CurrentDay、ProjectDays 和 DaysFromStartDate 使用了 VAR。我還通過引用 DaysFromStartDate 和 ProjectDays 獲取了 DaysFromEndDate。

之後,我對 ProgressColor 和 CompletionPercent 做了進一步的邏輯工作。

關於變量的另一件有趣的事情是您還可以嵌入一些 TRUE 或 FALSE 邏輯。通常,您會在主公式的上方看到一長串 IF 語句。但這次,我選擇使用 ToCompletionLogic 和 MAX Days greater than or equal to MAX Days less than or equal to 等將 TRUE 或 FALSE 邏輯放入 VAR 中。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

您還會看到我已將我的 IF 語句輸入到我的 SWITCH 公式中,這是一種更有效的方法。

IF 語句現在更容易理解,因為邏輯只需要寫入變量一次而不是此列表中每個語句的引用。

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

使用變量與度量分支

您可能想知道為什麼我在這種情況下不使用度量​​分支,因為您知道我之前也多次提到過它。

因為這裡用到的很多邏輯,純粹就是為了這個具體的計算。它在我模型的其餘部分不可重複使用。

因此,在這種特殊情況下,最好將它作為一個變量放在您實際使用它的一個公式中,而不是讓它在您的度量組中佔用大量空間。 

因為它只是這個計算的局部,所以我決定將所有這些東西放在變量中並創建一個單一的公式來解決所有問題。 

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法

重要的是要注意我沒有從頭開始構建這個公式。我最初確實以不同的方式將所有這些分開。這是為了確保我在每個不同的上下文中計算出正確的結果。從那裡開始,我通過構建這個特定的度量來清理它。

因此,就語法而言,變量位於頂部,然後是 RETURN 函數,用於在此處輸入邏輯。 

為什麼使用 LuckyTemplates 變量是編寫 DAX 度量的更好方法


在 LuckyTemplates 中使用變量——一個詳細的示例
場景分析技術使用多個“假設”參數
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 網關?所有你必須知道的