1
很多朋友在数据处理过程中经常碰到这样的数据和转换要求:即一些本来应该是多列的内容,全堆到了一列里。
这个问题的解法很多,这个文章里,将从一个经典的解法开始,到后面的非常简单的函数解法,以及涉及到的建议大家系统学习的函数,做一个全面的讲解。
经典的解法如下,虽然步骤看起来有点儿多,但熟练之后,操作起来还是很快的。
Step-1:获取数据
Step-2:添加索引列
Step-3:添加取模(余数)列
重要基础知识:Power Query里的行标是从0开始的,如图中左边标志的第1行,在系统内的行标实际是0,以此类推。
Step-4:以不聚合的方式透视列
Step-5:选中出订单号列以外的订单信息列,【向上】填充
Step-6:通过筛选去除多余行
Step-7:右键菜单删除索引列
Step-8:修改列名
Step-9:数据上载
2
关于这个问题的解法,其实还有很多,很早之前我就录过一个视频讲解,包括2种操作方法(其中第1种即为上面的方法),视频中的第2个操作方法,更加简洁精巧:
3
虽然这两个操作的方法都不复杂,不过,随着Power Query的不断更新,以及对函数的深入学习,通过M函数来解决这个问题,变得非常、非常、非常简单!
只需要两个简单函数:即先通过List.Split函数将原始数据进行拆分,然后再用Table.FromRows函数将拆分好的数据合并到一个表里!
其中的List.Split函数也非常简单,就是按多少个元素(这里是5)为一组对数据进行拆分,单独拿出来看如下图所示:
当得到数据拆分后的列表,即可以通过Table.FromRows生成明细表。关于表、行、列转换的知识,大概涉及以下10个左右关键函数,这里只用到其中的一个:
关于所有这些函数,建议直接通过下面这个不到20分钟的视频进行一次系统的学习:
4
前几天,在微信群(公众号发送消息可获取最新加群二维码)里对于学习Power Query有个小讨论,焦点问题是:PQ是否要深入学?
反方观点:
1) 数据清洗是价值最低的工作,最好不做,非要做,花的时间越少越好,老做数据清洗,工资肯定高不了,没啥价值,要想办法赶紧交出去,要最后秀出来那块才能让人看到。
2) 微软做这个工具就是不想让用户学代码,不要反其道行之,所以,对于PQ,不需要学太多函数,按钮点点基本都够用了。
正方观点:
1) 实际工作中数据清洗的工作却是必须做的,公司很需要数据清洗, 并且这个事情还不能做错。
2) 很多公司分工没有那么细 ,都是一人包揽的,起码开始的时候是一人包揽的,尤其在推广power bi的过程中,微软营销上不给力,只能靠自己。
就我个人接触的大多数用Excel或Power BI的人来说,数据清洗的工作基本都是一人包办的,极少数见到可以把数据清洗的工作交由他人来做,而自己只做建模和后续的分析——除了一些财务、咨询类的岗位,他们手上的数据通常来说本身就相对规范。
所以,很多时候,我们还是要先过数据清洗这一关,但是,也正如上面反方的观点,数据清洗的工作的确是很难体现价值的(起码很难让老板看得见),所以,如果能交出去当然最好,但是,如果必须自己做,也一定要知道自己在干什么,为什么干——数据清洗不是目标,只是过程!脚踏实地地做好数据清洗的工作时,一定也要仰望星空:掌握数据建模以及做好结果呈现、解析。
可喜的是,Power系列功能以及Power BI产品是真的很好用,用户接触后基本都会非常喜欢,所以,这个活儿,吃力,但还算讨好。
---
本文配套材料下载
(按文章发布日期确定对应文件)
https://share.weiyun.com/5YKFr4Z