LuckyTemplates 中的 DAX 計算:最佳實踐

本教程將介紹在 LuckyTemplates 中開發報表時 DAX 計算的最佳實踐。您可以在本博客底部觀看本教程的完整視頻。

DAX 計算是 LuckyTemplates 開發的四大支柱之一。在這篇文章中,您將了解有關如何最大化 DAX 以便輕鬆獲得正確且有價值的見解的技巧。

目錄

DAX 編輯器提示

使用這些 DAX 編輯器提示可以更輕鬆地使用 DAX 計算。

第一個技巧是調整代碼的縮放。

編輯代碼時,設置公式的大小有助於使它們更清晰可見。

為此,請打開您要調整的度量。按住CTRL並使用鼠標滾輪更改縮放級別。

LuckyTemplates 中的 DAX 計算:最佳實踐

即使您打開另一個度量,縮放級別也會保持不變。

下一個技巧是如何輕鬆替換代碼中的名稱。

再次打開一個度量並選擇您要更改的詞。按住SHIFT+CTRL+L,然後鍵入新單詞。

在此示例中,單詞Dates已同時更改為Calendar

LuckyTemplates 中的 DAX 計算:最佳實踐

DAX 編輯器的最後一個提示是使用“@”符號作為前綴來標記虛擬表中添加的列。

這可確保您選擇正確的列和後續行。

這是一個示例度量。您可以看到在添加的列之前有一個“ @ ”符號。

LuckyTemplates 中的 DAX 計算:最佳實踐

在 LuckyTemplates 中格式化 DAX 計算

格式化您的 DAX 代碼可以使人們可以理解和閱讀它們。

如果未格式化,則不是 DAX。

DAX 清理工具是 LuckyTemplates 中的一個工具,可幫助您格式化代碼。

要打開該工具,請轉到 LuckyTemplates 網站並單擊資源

LuckyTemplates 中的 DAX 計算:最佳實踐

接下來,轉到頁面底部並單擊DAX Clean Up

LuckyTemplates 中的 DAX 計算:最佳實踐

從LuckyTemplates 報表中的 DAX 編輯器複製代碼,並將其粘貼到 DAX 清理工具中。然後,單擊格式。

LuckyTemplates 中的 DAX 計算:最佳實踐

完成後,將格式化的代碼複製回 LuckyTemplates 報表中的編輯器。

LuckyTemplates 中的 DAX 計算:最佳實踐

此外,如果您的代碼中有復雜的功能,最好將解釋作為註釋。這有助於其他人了解所用函數的用途。

指定名稱和變量

在 DAX 代碼中使用變量時,請使用下劃線作為變量名稱的前綴,以幫助在後續行中選擇正確的值。這減少了 IntelliSense 提供的列表。

在此示例中,您可以看到,當您放置下劃線時,它只會顯示兩個選項。

LuckyTemplates 中的 DAX 計算:最佳實踐

另一種技術是使用RETURN RESULT 結構。這使得增量開發和調試DAX 代碼變得更加容易。

多個表中具有相似列名的情況經常發生,因此您需要具體命名它們。

這是具有相同列名的表的示例:

LuckyTemplates 中的 DAX 計算:最佳實踐

即使列包含相同的數據,您也應該始終限定列名以獲得所需的結果。但是,您不能對度量執行此操作,因為它們可以從一個表移動到另一個表。限定你的措施將使你的 DAX 變得脆弱。

了解 LuckyTemplates 中的 DAX 函數

計算函數

 是最重要的 DAX 函數。此函數不執行計算,而是更改計算的上下文。

在此示例中,CALCULATE函數用於將Total Sales的計算上下文更改為當前評估前一年。

LuckyTemplates 中的 DAX 計算:最佳實踐

編寫正確的 DAX 代碼的關鍵概念之一是了解如何使用CALCULATE來操縱上下文。

DAX 中有許多可用的時間智能函數。 是最通用的 DAX 函數之一。

使用DATEADD編寫度量後,您可以輕鬆地複制和粘貼代碼並進行少量更改以創建新度量。

這是Sales Last Year度量的示例 。

LuckyTemplates 中的 DAX 計算:最佳實踐

複製整個代碼並將其粘貼到新度量中。您可以更改名稱並替換不同的時間範圍。

LuckyTemplates 中的 DAX 計算:最佳實踐

除函數

LuckyTemplates 中的除法可以通過多種方式完成。

DIVIDE函數處理所有情況 包括被零除的情況。它還允許您添加替代結果。

LuckyTemplates 中的 DAX 計算:最佳實踐

SWITCH 和 TRUE 函數

另一個使您的代碼更易於理解的最佳做法是使用 函數。

如果您有多個評估條件,則可以使用它。它還使您可以靈活地修改代碼並調整或添加新條件。

這是一個Selected Metric度量。

LuckyTemplates 中的 DAX 計算:最佳實踐

它針對不同的選擇返回不同的度量。這會在選擇切片器中顯示所選指標的值。

LuckyTemplates 中的虛擬表

在開發 DAX 解決方案時,了解虛擬表是一個真正的好處。 

它們很有用,尤其是與變量結合使用時。它們還有助於劃分代碼的複雜性並使其更易於查看。

在 DAX 代碼中構建虛擬表時,使用 將列分組到基表中,然後用 構造將其包圍以將列添加到基表。

確保在ADDCOLUMNS添加的列上使用“ @ ”符號前綴 ,以防止歧義並確保您選擇了正確的虛擬表列。

您可以使用 DAX Studio 或表格編輯器來幫助開發虛擬表,以便您可以輕鬆查看它們的內容。

LuckyTemplates 中的關係

在 LuckyTemplates 的一對錶中,可以有很多關係。您可以有許多不活躍的關係。但是,只能有一個活動關係。

默認情況下,DAX 代碼將使用活動關係,但它可以通過 函數使用特定的非活動關係。

以下是簡要的銷售場景:

LuckyTemplates 中的 DAX 計算:最佳實踐

可以看到Date Table 的Date之間有很多關係。

Sales  by Order Date 是活動關係;Sales by Invoice Date 是不活躍的關係。

如果將鼠標懸停在數據模型中的實線上,您將看到DateOrderDate之間的活動關係。

LuckyTemplates 中的 DAX 計算:最佳實踐

虛線表示DateInvoice DateShip Date之間的非活動關係。

通過USERELATIONSHIP函數,您可以看到報表中Sales by Order DateSales by Invoice DateSales by Ship Date列之間的差異。

LuckyTemplates 中的 DAX 計算:最佳實踐

度量值和計算列

在 LuckyTemplates 中,建議對計算列使用度量值。

度量就像位於模型之上的虛擬計算。使用度量值時,僅在視覺對像中使用時才進行計算。

同時,計算列是模型的一部分。這意味著每次刷新文件時都會進行計算。

計算列可用於切片器,與度量相比,可以增加數據模型的物理大小。

LuckyTemplates 中最有價值的技術是度量值分支和使用度量值組。

當您執行複雜的計算時,度量分支會模塊化您的代碼。它使它們更容易閱讀和理解。

使用度量值組也有利於保留您的度量值。它有助於使您的報告看起來乾淨,並組織您的度量,使它們更容易找到和理解。

LuckyTemplates 中的 DAX 計算:最佳實踐

LuckyTemplates 中 DAX 計算的上下文

LuckyTemplates 的主要優勢之一是上下文。這也是 LuckyTemplates 開發人員難以理解的概念之一。

上下文是執行計算的環境。

DAX計算中有3種上下文:

  • 評價語境
  • 行上下文
  • 篩選上下文

不完全理解上下文通常是報告開發過程中出現困難的原因。

LuckyTemplates中DAX計算的功能

DAX 和 LuckyTemplates 中主要有兩類函數:

  • 聚合函數
  • 迭代函數

等聚合單個列的值。

LuckyTemplates 中的 DAX 計算:最佳實踐

迭代函數為表中的每一行計算一個表達式。它們也稱為 X 函數。迭代函數的示例有等。

LuckyTemplates 中的 DAX 計算:最佳實踐

它們有兩個參數:一個要迭代的表,以及執行計算的表達式,該表達式可以使用來自基表或相關表的多列。


數據加載和轉換最佳實踐
LuckyTemplates 中的數據建模:提示和最佳實踐
計算列 LuckyTemplates:提示和最佳實踐

結論

LuckyTemplates 中 DAX 計算的這些最佳實踐將幫助你開發報表。本教程中討論的技術為您在創建 LuckyTemplates 報表時將遇到的 DAX 函數、代碼和上下文提供了良好的背景知識。

如果您發現很難製作一份乾淨、有條理的報告,您可以使用和應用這些最佳實踐。這些必將幫助您獲得正確的結果並提高您在 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 用戶最初應該了解的主要主題之一。