今天我们来学习一个简单的功能,就是一行转多行,本文将介绍如何通过Excel实现,下一篇将介绍Hive中的实现方法。
1、数据
先来看看我们的数据,主要有2列,分别是班级和姓名。
本文主要想实现的功能即将上图左侧的数据格式转换为右侧的数据格式。即实现一行转多行的功能。
先看第一个需求,想必熟悉Excel的同学也清楚如何将字符串按照指定的分隔符进行拆分:
但使用分列只能实现如下的结果:
显然这是不能满足我们的要求的。今天我们就来介绍Excel2016新增的功能power query(mac上好像还没有,本文使用的是windows版本的Excel2016)。
首先选中我们的数据区域,点击数据-》获取与转换-》从表格:
随后即可进入power query的页面,接下来需要做两步,第一是对姓名一列进行分列,第二步是进行逆透视。
首先是分列,选中学生一列之后点击上方拆分列,并选择按分隔符分列即可:
分列后结果如下:
然后选中学生对应的三列,点击上面转换选项卡里面的逆透视列:
结果如下:
然后删除中间一列,即可得到我们想要的结果。
最后咱们简单介绍下什么是逆透视。想必大家对于数据透视表都比较熟悉了,那么逆透视就是透视的逆过程,如下图,从右边到左边可以称作透视过程,而从左边到右边则是逆透视的过程: