PowerBI/Excel - PowerQuery數據轉換系列 - 如何將多行的值串聯到一行 - 行列轉換


 Power Query 是做數據轉換、數據清洗的利器,不管是在Excel還是PowerBI,如何玩好Power Query是成功建模的必不可少的一步。

 

今天要get到的一個新技巧:行列轉換

如何將多行數據串聯到一列

 

場景:很多時候需要把多行的數據串聯起來

 

 

假設有數據如下,如何在Excel或者PowerBI做數據轉換得到需要的結果呢?

 

 

名字 產品 數量
張三 蘋果 4
張三 雪梨 2
李四 香蕉 8
李四 橙子 3
李四 蘋果 10

需求:將各人買的東西和數量串聯起來到一行上。

 

 

 

 

1. 先把產品和數量串聯起來: 添加列》

= Table.AddColumn(#"Changed Type", "產品數量", each [產品] & ":" & Text.From([數量]))

 

 

 

2. PowerQuery編輯器》轉換》分組》 分組依據:名字 新列名:數據 操作:所有行

= Table.Group(#"新列 產品數量", {"名字"}, {{"數據", each _, type table [名字=text, 產品=text, 數量=number, 產品數量=text]}})

 

 

 

3. 添加列》 自定義列》 = Table.AddColumn(分組的行, "產品數量2", each Table.Column([數據],"產品數量"))

= Table.AddColumn(分組的行, "產品數量2", each Table.Column([數據],"產品數量"))

 

 

 

 

4. 點擊【產品數量2】列的擴展按鈕》提取值》分隔符:逗號 (任何你想要的間隔字符)

 

= Table.TransformColumns(已添加自定義, {"產品數量2", each Text.Combine(List.Transform(_, Text.From), ","), type text})

 

哇啦!結果顯示出來啦! 蘋果:4,雪梨:2 香蕉:8,橙子:3,蘋果:10


5. 刪除多余的列就得到結果啦!

= Table.RemoveColumns(提取值,{"數據"})

 


 

 作業:

如果數據如下,如何得到結果呢?

名字 分類 產品 數量
張三 水果 蘋果 4
張三 水果 雪梨 2
李四 水果 香蕉 8
李四 水果 橙子 3
李四 水果 蘋果 10
張三 餅干 桃酥 3
張三 餅干 杏仁餅 8
李四 餅干 龍須餅 3
李四 餅干 老婆餅 5
李四 餅干 老公餅 2

所需結果:

 


免責聲明!

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



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