分享

一个“透视列”就能解决的事,你却用数据透视表“拖拖拉拉”,难怪你天天加班

 Excel教程平台 2021-08-11

编按

Hello everyone~我是爱生活爱Excel的小E。如何将数据进行行列转置?用数据透视表、用函数公式?相信各位小伙伴有不少答案。当我们的数据体量过大或者是单组别数据时,我们会选择用Power Query中的“透视列”功能进行行列转置,将一维数据转换成二维数据。具体如何操作?跟小E一起来学习一下吧。

有小伙伴问了这样一个问题:我有一组员工请假日期的数据,按行依次记录,只有姓名这一列可以作为分组依据。如何将这样的数据由列转置到行,一行记录一名员工的请假情况?

大家先来看一下数据,如下图所示。A列中的数据为员工姓名,B列中的数据为员工的请假日期,数据是纵向排列的,也就是我们常说的一维数据。


扫码入群,下载Excel练习文件

对于将数据由列转置到行这类问题,在PQ中常用“透视列”的功能来实现。可以说,“透视列”功能是将一维数据转换为二维数据一大利器。

对于一维转二维这种操作,在数据的结构方面,至少需要两个分组依据以及一列数据值,即一般至少需要三列数据。

这位小伙伴的数据,数据值是有的,没什么问题。但在组别方面,却只有姓名这一个组别,还缺少一个组别。这可就和常见的“透视列”所需要的数据不太一样了。对于这样的数据,该如何实现转置呢?今天,我们一起来学习一下解决这种问题的方法。

【解决问题的思路】先添加一个用来标识每名员工请假次数的辅助列,然后再到PQ中对这个辅助列进行“透视列”操作。

1.添加用来表示员工请假次数的辅助列

首先,我们在C列增加一项“请假次数”,并在C2单元格中输入函数公式=COUNTIF($A$2:A2,A2),并将公式下拉复制到C13,得到的结果如下图所示。

【公式解析】

这是COUNIF函数的一个经典应用——计算组内序号。在这里,我们就是利用COUNTIF函数生成一个辅助列,用来标识每名员工请假的次数序号。

可以看到,张三的请假次数是从1开始,至2结束,共2次;李四的请假次数是从1开始,至3结束,共3次;其余以此类推。每名员工的请假次数均从1开始,直到该员最后一次的请假次数为止。

我们现在来理解一下“组内序号”的含义——所谓“组内序号”的“组”,在本例中指的就是员工姓名,即以员工姓名来分组;所谓“序号”,就是该员工请假的次数,自1开始递增,直到该员工最后一次请假的次数为止,与其他员工的请假次数无关。

由于刚才写的COUNTIF函数只显示组内序号的数字,看起来不太好理解,下面我们将公式稍微调整一下,在数字前面加上“第”,在数字后面加上“次”,让它变得更容易理解。我们将C2中的公式改为="第"&COUNTIF($A$2:A2,A2)&"次",得到的结果如下图所示。

以员工张三为例,可以看到,请假次数由“1”、“2”变成了“第1次”、“第2次”,这样是不是更好理解了呢?

添加完这个辅助列,接下来我们要做的,就是去PQ中进行“透视列”操作啦!

2.利用PQ的“透视列”功能转置数据

点击A1:C13区域中的任意一个单元格,例如B2,然后依次点击【数据】-【来自表格/区域】,弹出“创建表”对话框,勾选“表包含标题”。如下图所示:

点击“确定”之后,就可以进入到PQ编辑器界面。如下图所示:

单击“请假次数”字段,即可选中“请假次数”这一列,此时该列变成绿色(请注意,本步骤很关键,想要对哪一列进行透视,则务必先单击选中哪一列)。

接下来,依次点击【转换】-【透视列】,弹出“透视列”对话框,如下图所示。

在“透视列”对话框中,点击“值列”下方的下拉菜单,将参数选择为“请假日期”;

点击“高级选项”前方的三角形图标,展开“高级选项”,点击“聚合值函数” 下方的下拉菜单,将参数选择为“不要聚合”。如下图所示:

点击“确定”之后,得到的结果如下图所示:

我们可以看到,“姓名”这一列中的数据已经变成了每个员工的姓名,每个员工的请假日期已经被转置到不同的列中。

请小伙伴们注意观察一下:

原始数据中“请假日期”这个字段已经消失,字段中的值(即具体的请假日期),被放置在员工姓名和次数相交叉的单元格中:原本纵向排列的“请假次数”,现在变成了各列的标识字段,共四列,分别为“第1次”、“第2次”、“第3次”、“第4次”;

同时,若员工未请假,则数据显示为“null”。例如,对于员工王五来说,由于他请了两次假,所以在第4行中,“第1次”、“第2次”字段中存放的就是他的两次请假日期,而“第3次”、“第4次”两列中的请假日期对应的数据均为“null”。

由于此时日期显示的是日期+时间的格式,所以,我们再对数据进行一下微调,将数据显示为日期格式。依次点击“第1次”、“第2次”、“第3次”、“第4次”前面的数据类型图标(即由日历和钟表构成的那个图标,它的意思是数据类型为日期+时间),在弹出的下拉列表中,将数据格式选择为“日期”。如下图所示:

整理后的数据如下图所示。

注:也可以在进入PQ编辑器之后,第一步就将“请假日期”的数据类型改成日期格式,这样可以避免刚才我们进行的4次修改数据类型的工作。本例之所以这样演示,就是为了让小伙伴多多熟悉PQ的操作哦!感兴趣的小伙伴们,可以在看完本文之后,尝试一下这种操作方法。

对于“null”值,我们不需要对其进行修改,因为当PQ中的数据上载至Excel中之后,它就会自动地显示为空值了。

接下来,我们依次点击【主页】-【关闭并上载】-【关闭并上载】,即可将数据上载至Excel中,最终的数据结果如下图所示。


今日互动话题

在评论区留下你的足迹叭~

还想了解PQ的哪些功能?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多