數據可視化之powerBI技巧(八)Power BI按多列排序的技巧


目前PowerBI的表格已經支持多列排序,但是矩陣依然還不支持按多個字段排序,雖然這個需求很普遍,這里利用DAX提供一個變通的實現方式。

模擬數據如下,有兩個數據指標:

對類別首先按[指標一]進行排序,如果[指標一]數據相同,則按[指標二]排序。

因為PowerBI目前只能按一列排序,自然會想到構造個輔助列來實現,比如這樣來添加輔助列:

 

原理就是在主排序列上加上一個特別小的數,這個特別小的數是由次排序列生成,兩個數據加到一起,就生成了一個由兩個指標混合而成,並且不會損壞原數據大小順序的列,然后按這個輔助列計算排名就可以了。

 

這個排序就是按照指標一和指標二作為主次排序字段生成。

該方法的關鍵就是確定如何生成這個輔助列,因為上面的數據一目了然,隨便用[指標二]除以一個很大的數,就可以生成一個不改變指標二順序的序列,並且加上這個序列以后,不會影響到[指標一]的總體順序。

但是如果數據量很大,並且數據大小跨度也很大,你就不能輕易的決定是除以10000、還是除以1000000更合適,必須先清楚的了解排序指標的數據結構,才能保證排序正確。

這里給出一個更加普適的方式來構造這個輔助列,無需考慮排序列的絕對數據大小,而改用相對大小,用它們自身的排名來構造,如下圖:

 

也就是[指標一]的升序排名,加上,[指標二]的升序排名除以(行數+1),原理是類似的,然后按這個輔助列排序就可以了。

 

當然,也可以不加物理輔助列,而把這個邏輯放到公式內部,一次性生成按兩個指標的排名:

 

這里用了三個RANKX,你可以慢慢琢磨一下這個公式的邏輯,同時加深對這個函數的理解。

度量值的方式同樣可以實現,用這幾個字段生成矩陣,並把排名度量值放進去,效果如下:

 

本文示例是按兩個字段排序,如果是兩個以上,同樣是這樣的原理和邏輯,需要的時候,直接套用就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM