博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerBI/Excel - PowerQuery数据转换系列 - 如何将多行的值串联到一行 - 行列转换
阅读量:6574 次
发布时间:2019-06-24

本文共 1095 字,大约阅读时间需要 3 分钟。

 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

所需结果:

 

转载于:https://www.cnblogs.com/lizardbi/p/PowerBI-PowerQuery.html

你可能感兴趣的文章
[转载]依赖注入那些事
查看>>
学习笔记===《用户体验要素——以用户为中心的产品设计》
查看>>
CentOS搭建Git服务器
查看>>
多线程篇六:线程池
查看>>
easyui tab页面关闭根据回调函数刷新父tab页
查看>>
GPS围栏两个多边形相交问题的奇葩解法
查看>>
PHPstorm如何导入字体主题
查看>>
静态链表
查看>>
在VS中手工创建一个最简单的WPF程序
查看>>
python for 格式化字符串 list.count
查看>>
"网络适配器本地连接没有有效ip地址配置"错误的解决办法
查看>>
360随身WIFI作USB无线网卡的做法
查看>>
网站设计中很重要的概念div+浮动
查看>>
js平滑滚动到顶部,底部,指定地方 animate()
查看>>
OC-NSFileManager
查看>>
printf和sprintf
查看>>
数组分割
查看>>
O(1) O(n)
查看>>
iphone socket讲解
查看>>
CAS机制详解
查看>>