1. 程式人生 > >PowerQuery實戰:數據轉置的綜合應用

PowerQuery實戰:數據轉置的綜合應用

images a10 ges tps ESS 下載 ide strong 數據結構

技術分享圖片

(正文開始)
本案例來源於網友提問。
案例描述:如上圖,原格式為數據源,目標格式為需通過PowerQuery整理後的數據結構。
大家可以先想一想,或者試一試,看是否可解決,在看了我以下的思路後,歡迎交流。

分析原格式與目標格式,形成以下思路:
1、5行作為一組
2、每組進行轉置
無論是寫程序,還是通過軟件操作,核心的步驟就這2步。
以下是在PowerBI中操作說明與截圖
1、載入數據,如下圖(步驟略)
技術分享圖片
2、由於5行作為一組,所以需要新增輔助列,以下2步完成此操作。先新增索引列,如圖:
技術分享圖片
3、索引列的值除以5,然後取余數,就能得到分組的值,如圖:
技術分享圖片
(1、2、3、4、0即5組數據,按此進行分組)
4、按新建字段“輔助分組列”進行分組,如圖:

技術分享圖片
5、第一次轉置:實現字段值的轉置
將下圖結構
技術分享圖片
轉變為下圖結構
技術分享圖片
關鍵的這一步代碼如下圖:
技術分享圖片
主要用到函數
Table.FromList:從List創建表格,主要提取字段值
Table.Transpose:表的轉置,實現字段值的轉置
6、展開字段,如下圖:
技術分享圖片
7、轉置表操作,第二次轉置實現整表轉置,如下圖:
技術分享圖片
8、提升標題
技術分享圖片
至此,核心步驟已完成,剩下修改字段名稱就可以了!

總結:核心步驟在第5步,實現字段值的轉置,目標是將字段值的內容與分組字段值放在同一行上。
以上就是本案例的核心步驟說明,希望能得到大家的反饋,看是否有其他辦法可完成,歡迎留言,讓我們相互學習,共同成長!
(正文結束)

網友回答非常棒
1、通過List.Split實現分組,Table.FromColumns創建表

技術分享圖片
這種函數組合非常巧妙,學習了!

2、通過Number.IntegerDivide整除實現分組,與我思路相似性很大
技術分享圖片

廣告:
1、本文所涉及的示例數據,請在知識星球“PowerBI有問必答”同名主題中下載(PS:知識星球最近在更新,不能發表主題,待更新完成後第一時間上傳資料)。
2、同步詳細視頻已更新至網易雲課題與51CTO課程中。

PowerQuery實戰:數據轉置的綜合應用