大家好,小悅這次給大家帶來的案例是:我們如何使用DAX將單個分隔行拆分為多行數據?首先我們來看到我們的業務需求。
業務需求
假設有一個表有兩列 -”學生”和”學科”,學科字段中的每個科目通過”,”號來分割,然而我們想要將我們的科目拆分為多行數據來分析。
最終結果應該是:
PART 01
我們這里先用我們輸入數據的方式創建一張原始表,當然你也可以通過其他的手段來得到這張表。
PART 02
創建完原始表之后。首先,第一步是獲取每行”學科”字段的一個科目數。這里是通過分隔符的多少,來推斷出科目數的多少。
結果如下圖:
PART
03
然后我們需要通過a表(2步驟得到的表)的最大科目數得到一份輔助表來幫助我計算下面的步驟,創建輔助表需要兩個步驟:
a. 獲取最大科目數
b. 創建輔助表
結果如下圖:
PART
04
然后使用CrossJoin函數來得到B表(3步驟得到的表)和A表(2步驟得到的表)的叉積表C表:
結果如下圖:
PART
05
現在過濾C表(4步驟得到的表),拿【總科目數】和輔助表的【Value】來做對比,獲得最終結果所需的確切行數。得到D表:
結果如下圖:
PART 06
剩下的就是將D表(5步驟得到的表)中的【學科】分成單個對應的科目。使用PATHITEM函數,通過【value】獲取科目所處位置
將結果如下圖:
PART
07
最后需要做的就是選取需要的列。
最終結果:
然后這里再附上整體代碼的截圖:
如果大家有其他的方法的話也可以在評論下方留言。
技術交流
1.Power BI免費下載:http://www.yeacer.com/
Microsoft Power BI Desktop中文最新版:下載地址
2.歡迎加入的Power BI技術群,目前正在學習階段,有興趣的朋友可以一起學習討論。
Power Data技術交流群:702966126 (驗證注明:博客園Power BI)
更多精彩內容請關注微信公眾號:悅策PowerBI
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,作者博客:https://www.cnblogs.com/yeacer/