RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

RANKX 是一個非常獨特的 DAX 函數,需要更深入地思考 其邏輯以及在特定上下文(例如 LuckyTemplates 中的表格或圖表)中運行計算時它的實際工作方式。您可以在本博客底部觀看本教程的完整視頻。

您不希望使用RANKX DAX 函數的是開始接收結果但並不真正理解它們是如何計算的,因為您總是會在報告中出現不正確的計算和結果。

RANKX函數中的每個不同參數都可以改變它計算結果的方式。您可以將多個參數輸入到此 DAX 函數中,以了解每個參數如何確定被認為很重要的基礎結果。

這就是為什麼了解RANKX如何在各種環境中工作的關鍵要素和概念至關重要。這將使您能夠確保您的計算是正確的,並且您的消費者正在查看真正有意義的見解。

在本教程中,我將討論如何使用這個特定的公式和函數。 

目錄

示例基本 RANKX 場景

下面是一個簡單RANKX計算的示例場景。首先,讓我們從左邊看一下表格。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

我們在這裡要做的是根據我們銷售的所有不同產品的銷售額(這也可以基於任何衡量標準) 確定這些產品的排名。

在 RANKX DAX 計算中使用 ALL 函數

現在,讓我們來看看這個特定場景的當前公式。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

首先,我們需要在RANKX DAX函數中創建一個表,以根據我們指定的度量評估每個產品。

此處使用 ALL 函數從 Products 表中刪除任何過濾。這是因為我們需要評估每個產品,並查看每個特定產品的總銷售額基於所有產品的排名。 

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

但是,如果我們刪除過濾器(在本例中為ALL函數),並且只使用“ Products ”,它會顯示不同的結果。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

如您所見,它剛剛評估為 1。這是因為它只查看當前上下文中的當前產品(在本例中為Product 63)。因此,所有內容都將排在第一位,因為這實際上是RANKX評估表中唯一的產品。這就是為什麼我們需要使用ALL函數來獲得正確結果的主要原因。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

現在,這就是您解決簡單RANKX計算的方法。       

但是,如果它變得更複雜怎麼辦?如果您需要的排名結果不僅僅基於 Total Sales怎麼辦?

那麼,這就是我們需要了解此計算的當前上下文的地方。我們需要知道如何操縱上下文以獲得我們想要的結果。

示例複雜 RANKX 場景

讓我們嘗試將完全相似的公式(產品排名度量)引入右側的表格中。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

如您所見,它給了我們另一個錯誤的結果。這背後的原因是因為我們這裡還有一個Customer Name列。

如果我們再次查看該公式,您會發現它並沒有分解每個單獨的客戶。我們僅為每個特定客戶評估產品。

讓我們嘗試整理Customer Name列。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

即使我們整理了Customer Name 列Product Ranking仍然會根據他們購買的產品的排名而變化。

正如您在這裡看到的,有很多相同的數字。一個例子是等級17。在這種情況下,可能是因為該特定客戶只購買了 17 件產品

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

現在,這可能就是您在這種情況下所需要的。但是,如果您需要比這更複雜的東西怎麼辦?如果您需要從 1 到 Customer Name 和 Product 上下文的不確定值的排名怎麼辦?

正如我所強調的,理解上下文以及我們如何操縱上下文以獲得我們想要的結果是很重要的。

使用 CROSSJOIN 函數

目前,我們有兩個維度,它們來自兩個完全不同的表。當您切換到Modeling View時,您會看到Customer Name 來自Customers表,而Product Name列來自Products表。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

因此,我們需要以某種方式從兩個表的RANKX邏輯中刪除此虛擬表上的過濾器。

我們需要執行我們在第一個表(左側)中所做的操作,但我們需要在兩個特定表中的客戶名稱產品名稱列中執行此操作。

然後最終,我們將通過Total Sales of Customer NameProduct Name獲得正確的排名。這是我們可以用於這種不同場景的公式。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

這個函數允許我們將兩個列連接在一起,或者它也可以是兩個表。但是,在這種情況下,我們將只連接列。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

進一步深入細節,我們在這部分嘗試做的主要是從CustomersProducts表中刪除所有過濾器

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

然後,我們將遍歷此虛擬表中的每一行,並評估或識別此特定客戶名稱產品名稱子集的特定排名位置。

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

如果您查看結果,您會在這裡看到我們終於獲得了準確的排名。而且,如果你注意到的話,第四排有兩排。這是因為它們都具有完全相同的Total Sales

RANKX 注意事項——LuckyTemplates 和 DAX 公式概念

這就是我們如何在這種特定情況下取得我們想要取得的結果。

結論

現在,這些只是我們想要在本教程中介紹的在DAX計算中使用RANKX函數時的一些注意事項。您可以通過多種方式在多種不同的功能中進行操作。但這裡的關鍵要點是,您確實需要了解放置 RANKX函數的上下文。

這絕對是展示RANKX 的最佳方式,尤其是當涉及到它在計算任何排名類型分析方面的多功能性時。您會驚訝於 RANKX 函數在 LuckyTemplates 中的靈活性。

它可以用於許多不同的場景。此外,它還支持一些高級見解,這些見解最終會給您的報告和可視化效果的消費者留下深刻印象。

祝你好運審查這個。


在 LuckyTemplates 中對基於排名的參數使用動態視覺效果 在 LuckyTemplates
中使用 RANKX 查找頂級客戶
使用 DAX 在 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 網關?所有你必須知道的