DAX 指標分析:分解長期 DAX 指標

DAX 指標分析:分解長期 DAX 指標

在本教程中,我將向您展示一些詳細的 DAX 度量分析,了解我如何將我最喜歡的頁面之一放在我為第 10 屆 LuckyTemplates 挑戰賽提交的報告中。

排名頁面使用了很多具有挑戰性的 DAX 指標。但是在我們的一位 LuckyTemplates 專家 Antriksh Sharma 的幫助下,加上一些度量分支,我能夠得到我想要的結果。

目錄

排名頁面概覽

在我們進入 DAX 度量分析之前,我想向您展示我們今天正在處理的頁面的不同部分。

這就是排名頁面的樣子。與我報告中的其他頁面不同,這主要包含卡片。

DAX 指標分析:分解長期 DAX 指標

這些卡片中的每一張都是使用 LuckyTemplates 桌面中“可視化”窗格下的內置卡片視覺對象製作的。

DAX 指標分析:分解長期 DAX 指標

它允許您通過頂部的這些圖標導航回報告中的其他頁面。

DAX 指標分析:分解長期 DAX 指標

我在其他教程中討論了此報告的其他頁面。如果您查看此報告中的其他頁面,您會發現它們也有指向此排名頁面的圖標。

頁面左側顯示總體排名前四的工廠和供應商,而右側顯示後四名。

DAX 指標分析:分解長期 DAX 指標

我還創建了單獨的 DAX 度量以獲得更具體的結果。例如,上面的三個根據停機時間平均停機時間缺陷數顯示前四名和後四名的工廠和供應商。

DAX 指標分析:分解長期 DAX 指標

我在報告頁面的底部更加具體。在左側,根據停機時間、平均停機時間和缺陷,我得到了前四名和後四名的工廠。

DAX 指標分析:分解長期 DAX 指標

在右邊,我做了同樣的事情,但這次是基於供應商的詳細信息。

DAX 指標分析:分解長期 DAX 指標

在學習本教程時,我會告訴您我是如何想到這個頁面的想法的。然後,我將為您詳細介紹如何創建這些措施中的每一個。

獲取使用 DAX 度量的想法

Antriksh那裡得到了這張幻燈片中 DAX 度量的想法。他是 DAX 大師,擅長優化措施。與他一起進行 DAX 指標分析很有趣。

在第 10 屆 LuckyTemplates 挑戰賽宣布前大約兩週,我們在 Skype 上討論了他在 LuckyTemplates 論壇上發布的 PBIX 文件。

DAX 指標分析:分解長期 DAX 指標

如您所見,我附上了一張 Antriksh 的照片,因為他是我們將在此處討論的頁面背後的靈感來源。我告訴他,當我有時間完成本教程時,我會稱讚他。

該模型很簡單,並使用一些基本數據,如客戶、產品和銷售額。

DAX 指標分析:分解長期 DAX 指標

它在左側有一個簡短的國家/地區列表。

DAX 指標分析:分解長期 DAX 指標

Antriksh 為Top N Countries by Sales創建了一個度量。我將列表從最高到最低排序,如向下箭頭所示。

DAX 指標分析:分解長期 DAX 指標

在右側,有一張卡片顯示了前四名和後四名的國家/地區。前四榜單顯示美國澳大利亞英國德國,與榜單前四名相匹配。

DAX 指標分析:分解長期 DAX 指標

但是,倒數四名的出現順序相反。它沒有從底部開始,即亞美尼亞,而是從名單上的第 5 位開始,即吉爾吉斯斯坦

DAX 指標分析:分解長期 DAX 指標

這就是為什麼我在底部製作了另一張卡片,使用上面使用的措施的修訂版本。

DAX 指標分析:分解長期 DAX 指標

請注意,倒數四個現在符合我想要的順序 - ArmeniaThailandSyriaKyrgyzstan

DAX 指標分析:分解長期 DAX 指標

讓我們進入這些卡片背後的 DAX 度量。我將從 Antriksh 為第一張卡片創建的度量開始。

DAX 指標分析:分解長期 DAX 指標

原始度量有超過 97 行以獲得我們在第一張卡片上看到的結果。

DAX 指標分析:分解長期 DAX 指標

DAX 指標分析:分解長期 DAX 指標

當我們向下滾動到第 20 行時,我們可以看到 Antriksh 使用了ASC。這就是倒數四名以這種方式出現的原因。

DAX 指標分析:分解長期 DAX 指標

既然我知道問題出在哪裡,我將向您展示我修改後的措施的樣子。

讓我突出顯示第二張卡片,以便我可以向您展示它背後的衡量標準。

DAX 指標分析:分解長期 DAX 指標

如您所見,我修改後的公式中只有 41 行。

DAX 指標分析:分解長期 DAX 指標

我與 Antriksh 合作,將其縮小了 60% 或 70%。它不僅不那麼複雜,而且還為我提供了我需要的結果——前四名從第 1 名到第 4 名,後四名從第 8 名到第 5 名。

在我與 Antriksh 討論幾週後,第 10 屆 LuckyTemplates 挑戰賽啟動了。部分要求涉及排名系統,這讓我想起了 Antriksh 的 DAX 指標。我意識到我可以復制並粘貼度量,然後應用一些度量分支來得出我需要的結果。

Dax 度量分析:逐步構建度量

現在,我將分解我用於排名頁面的度量,以獲得我想要的結果。此 DAX 度量分析可以幫助我解釋度量的工作原理,考慮完成它需要多少行。

在我的其他教程中,我展示了我如何喜歡對度量進行分組以使事情更有條理。所以我為 Top N v2 創建了一個子文件夾。

DAX 指標分析:分解長期 DAX 指標

在這個文件夾中是我對Top N Plants Vendors Downtime Minutes的度量。您會看到它具有與我之前在討論 Antriksh 的度量時向您展示的相同的 41 行代碼。基本上,我所要做的就是替換一些項目以獲得我想要的結果。

為了更好地分解它,我將整個測量分為 9 個不同的部分。我將從一到九逐一介紹這些步驟,並解釋每個步驟的作用。

DAX 指標分析:分解長期 DAX 指標

該措施使用了許多變量,以便我可以獲得更清晰的結果。設置這些變量可以幫助最終用戶了解度量是如何組合在一起的,並解釋我如何獲得每個結果的詳細信息。

讓我們從第一步開始,設置名為 BaseTable 的

DAX 指標分析:分解長期 DAX 指標

在此 BaseTable 中,您可以看到我引用了Plant LocationVendor的數據。

當您返回到 PBIX 文件時,您會看到上面的卡片同時引用了 Plants 和 Vendors。這就是為什麼我需要這裡的所有數據,而不是更下方的卡,這也是停機時間分鐘,但只使用工廠位置數據。

DAX 指標分析:分解長期 DAX 指標

由於第一步很簡單,讓我們繼續第二步。

第二步從函數開始。

DAX 指標分析:分解長期 DAX 指標

此函數引用我在步驟 1 中創建的變量和停機時間分鐘數

函數放在一起來確保顯示一個值。我還希望結果大於或等於零。這是因為用於該報告的數據集包括一些組合,其中工廠或供應商為空。也有值為零的條目。

第三步涉及另一組變量,從 N 的值開始。

DAX 指標分析:分解長期 DAX 指標

在這裡,N 等於 4,因為我希望前四名和後四名出現。

DAX 指標分析:分解長期 DAX 指標

它還為 Top & N 設置了一個前綴,再加上一個破折號。

DAX 指標分析:分解長期 DAX 指標

放在一起時,它只是想顯示“Top 4 -”,這就是相應卡片在枚舉預期結果之前的開始方式。

DAX 指標分析:分解長期 DAX 指標

現在,讓我們進入第四步。這是我開始得出預期結果的地方。

DAX 指標分析:分解長期 DAX 指標

在這種情況下,有些人會考慮使用。畢竟,我正在嘗試對條目進行排名並得出最佳結果。然而,Antriksh 和我認為在這種情況下更合適,因為我們只需要ASC順序中的前四名。

DAX 指標分析:分解長期 DAX 指標

接下來,我使用了函數,它使用 Plant Location 數據。

DAX 指標分析:分解長期 DAX 指標

它還設置了我希望列表顯示的格式。這就是為什麼您會看到它有一個反斜杠和一個逗號,以及表示空格的引號。它還設置為ASC順序,因此如果我返回 PBIX 文件,您將看到前四名的列表,結果之間有反斜杠和逗號。

DAX 指標分析:分解長期 DAX 指標

度量的第五步首先用And替換列表中的最後一個逗號。

DAX 指標分析:分解長期 DAX 指標

當您返回幻燈片時,您會看到最後一個條目在供應商和工廠位置之前確實有一個“和”。

DAX 指標分析:分解長期 DAX 指標

這就是第五步要完成的。它正在創建一個列表並使用LastCommaPosition的函數。

DAX 指標分析:分解長期 DAX 指標

請注意,這表明 N 大於 2。這意味著替換發生在第三個字符串之後。

第六步看起來很熟悉,因為它基本上複製了我在頂部所做的相同操作,以“Top 4 -”開始列表。

DAX 指標分析:分解長期 DAX 指標

這裡唯一的區別是我希望它顯示為“Bottom 4 -”而不是“Top 4 -”。

DAX 指標分析:分解長期 DAX 指標

部分在底部再次使用,但現在我調用變量 BottomData 而不是 TopData。同樣,這部分在工廠名稱和供應商名稱之間插入反斜杠和逗號。

DAX 指標分析:分解長期 DAX 指標

當我們回顧 Antriksh 的原始措施時,這也是他使用ASC 的相同部分,這導致列表的出現與我預期的不同。這就是我在這裡使用DESC 的原因。

所以基本上,從這一點開始,大部分只是從措施的早期部分複制和粘貼。在大多數情況下,我只是將“頂部”一詞替換為“底部”。

對於第 8 步,我想用單詞And更改最後一個逗號

DAX 指標分析:分解長期 DAX 指標

第九步結束這個措施。

DAX 指標分析:分解長期 DAX 指標

這使用帶有數字 10 的函數。這確保前 4 名和後 4 名顯示在不同的行上。將其視為鍵盤上的返回鍵。它會讓你進入下一行,這樣頂部和底部的四個就不會出現在一行中。

驗證結果

Antriksh 和我能夠將 DAX 的原始 90 多行縮減為 41 行。但是,41 行對於某些用戶來說可能仍然很多。以我們的方式分解該度量是理解為什麼必須以這種方式編寫度量的好方法。

現在我已經解釋了每個步驟的全部內容,是時候驗證該措施是否真的起到了預期的作用。讓我們轉到排名頁面並與報告的其他部分驗證結果。

我將從停機時間的工廠/供應商開始。

DAX 指標分析:分解長期 DAX 指標

這顯示前四名是新不列顛的 Linktype、弗雷澤的 Flashpoint、雙子岩的 Quinu 和亨寧的 Layo。至於後四名,米德爾敦的 Wikido 整體表現最差。

現在,我將轉到Vendors and Plants Combined頁面,看看結果是否匹配。

DAX 指標分析:分解長期 DAX 指標

通過從上到下排序的Rank By Downtime Minutes列,它確實顯示了前四名的正確結果。

然而,有些人可能想知道,為什麼新不列顛出現在該列表的第二位,當它出現在排名卡的頂部時。

請注意,排名顯示三個條目為前 1。這些條目使用 RANKX 進行排名。

DAX 指標分析:分解長期 DAX 指標

但是,如果您查看Downtime Minutes列,它會顯示 New Britain 顯示 0,而 Frazer 和 Twin Rocks 各顯示 1。這就是為什麼在排名頁面的卡片上,New Britain 仍然排在 Frazer 和 Twin Rocks 之上哪怕他們都排在第一位。

現在,讓我們檢查下四個是否正確。只需按停機時間降序排列排名即可。

DAX 指標分析:分解長期 DAX 指標

如您所見,它確實將米德爾敦、沃爾多伯勒、巴林和切薩寧顯示為卡片上的倒數四名。這意味著Plants/Vendors By Downtime Minutes的度量是正確的。

現在,讓我們看一下Plants By Downtime Minutes卡片。

DAX 指標分析:分解長期 DAX 指標

這表明前四名分別是雷丁、米德爾敦、沃爾多伯勒和克拉克斯維爾。倒數四位分別是里弗賽德、查爾斯城、雙子岩和切薩寧。

為了驗證這些結果,我將檢查植物頁面並查看結果是否匹配。這裡最大的區別是我們之前驗證的卡片是基於植物和供應商數據,而這張卡片只查看植物數據。

當我們按停工時間從上到下對排名進行排序時,確實顯示前四名是雷丁、米德爾敦、沃爾多伯勒和克拉克斯維爾。

DAX 指標分析:分解長期 DAX 指標

現在,讓我們這次倒序,看看後四名是否匹配。您會看到,在我們名單上的 30 家工廠中,里弗賽德、查爾斯城、雙子岩和切薩寧排名墊底。

DAX 指標分析:分解長期 DAX 指標

這意味著我們看到了正確的植物結果。

這一次,讓我們看一張按缺陷對供應商進行排名的卡片。

DAX 指標分析:分解長期 DAX 指標

這次我將轉到供應商頁面,看看 Dablist 是否是頂級供應商,而 Yombu 是否是基於缺陷的最差供應商。

DAX 指標分析:分解長期 DAX 指標

當我們將供應商從最佳到最差排序時,看起來前四名與排名頁面上的卡片相匹配。

讓我把排名從最差到最好,看看倒數四名是否也匹配。

DAX 指標分析:分解長期 DAX 指標

您會發現 Yombu 確實是最差的,還有卡片上倒數四名中的其他三個。

Dax 度量分析:應用度量分支

我們之前所做的 DAX 度量分析僅查看了Plants/Vendors By Downtime Minutes背後的度量。但是我是如何處理其他卡片的措施的呢?這就是度量分支的用武之地。

度量分支涉及使用現有度量來導出其他結果。

在這份報告中,我只是簡單地複制並粘貼了我們之前討論的措施,並更改了一些元素以滿足我的需要。

措施的名稱顯然是我要更改的第一件事。但不僅如此,我還需要更改我引用的數據。例如,我們將Plant LocationVendor數據用於我們的原始度量。

DAX 指標分析:分解長期 DAX 指標

但是,如果我要對Plants By Downtime Minutes使用相同的度量,那麼我必須刪除 Vendor 數據並只關注 Plant Location。

對於同樣引用兩組數據的同一度量的所有其他部分,我將不得不更改它,就像我使用CONCATENATEX時一樣。

DAX 指標分析:分解長期 DAX 指標

停工時間也是如此。如果我要處理一張查看平均停機時間或缺陷的卡片,那麼我所要做的就是更改這部分。

DAX 指標分析:分解長期 DAX 指標

至於在度量中顯示“@DowntimeMins”的部分,即使我引用的是缺陷或平均停機時間,保持這種狀態也無妨。

DAX 指標分析:分解長期 DAX 指標

但是,如果您是那種喜歡按特定順序保存事物的人,您也可以進去更改它。請記住,如果您更改它,則必須在整個頁面中一直更改它。這意味著要為相同的結果付出額外的努力。

您可以想像我通過使用度量分支節省了多少時間。這樣做意味著我不必為我處理的報告的每個部分都創建新的度量。我只需要根據我想看到的結果調整現有的衡量標準,從而大大縮短我的報告開發時間。

為了向您展示我是如何做到的,讓我們看看按停機時間劃分的供應商

DAX 指標分析:分解長期 DAX 指標

當我調出該度量時,您會看到它與Plants/Vendors By Downtime Minutes有相同的 41 行。

DAX 指標分析:分解長期 DAX 指標

但是,在第 1 步中,我只引用了 Vendor 數據並刪除了 Plant Location。

DAX 指標分析:分解長期 DAX 指標

我也在其他適用的地方更改了數據。

DAX 指標分析:分解長期 DAX 指標

我保留了停機時間分鐘數,因為這是我得出結果的基礎。

DAX 指標分析:分解長期 DAX 指標

所以這些是對措施的快速修復,以便它可以應用於報告的其他領域。

讓我在這裡給你看另一個例子。這一次,讓我們看看按缺陷分類的供應商

DAX 指標分析:分解長期 DAX 指標

再一次,我們只是在這裡查看供應商。

DAX 指標分析:分解長期 DAX 指標

我在這裡所做的更改是對Downtime Minutes的引用。相反,我使用了Defects

DAX 指標分析:分解長期 DAX 指標

我還確保其他行仍在使用供應商的數據。

DAX 指標分析:分解長期 DAX 指標


LuckyTemplates 中的 DAX 度量使用度量分支
在您的報告中實施 DAX 度量組——LuckyTemplates 建模審查
使用排名 DAX 度量在 LuckyTemplates 中提取獨特的見解

結論

那是 Antriksh 的一些強大的 DAX 工作。我絕對喜歡使用它將它分支出來,並將它應用到我報告的不同部分

我們所做的深入 DAX 度量分析也是了解流程各個方面的好方法。起初,採用長期指標可能令人望而生畏,但像這樣的全面 DAX 指標分析可以幫助解決問題。

在這個頁面上工作還強調了擁有一個協作社區的重要性,就像我們在 LuckyTemplates 中擁有的那樣。很高興每個人都有機會與像 Antriksh 這樣的人以及其他成員和專家一起工作,他們也有一些自己的技巧和竅門。

一切順利,

賈勒特


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