将 Excel 多列数据合并为一维表的三种方法,你 Pick 哪一个

今天,我们的分享跟数据结构有关。

数据结构的优化,是数据分析处理的基础性工作。

有时,我们拿到的表格,它的数据结构,并不利于后续的数据处理工作。

这时候,我们就需要对数据结构,进行适当的调整、优化

比如,我们有时候会遇到下图左侧所示的数据结构,这样的结构,适合阅读,但后续分析工作会很不方便。

所以,我们就需要将其转换为右侧所示的结构。

那么,我们要如何完成这种数据结构的转换呢?

复制粘贴?这可是要加班的节奏啊!

不过不用急,解决的方法还是不少的。

函数法

我们可以通过 IF、SMALL、RIGHT、TEXT、ROW、COLUMN、INDIRECT 等函数的组合,来实现我们想要的效果:

我们先解决姓名列,在 G2 单元格输入公式:

=INDIRECT(TEXT(RIGHT(SMALL(IF($A$2:$D$6<>"",ROW($2:$6)*10+COLUMN($A:$D)*10001),ROW(A1)),3),"r0c0"),FALSE)
▲ 左右滑动查看

注意:这个是数组公式,需要同时按【Ctrl+Shift + 回车键】来完成输入。

部门列在 F2 单元格输入公式:

=INDEX($A$1:$D$1,1,MATCH(1,MMULT(TRANSPOSE(--($A$2:$D$6=G2)),ROW($A$1:$A$5)^0),0))
▲ 左右滑动查看

注意:这也是数组公式,需要同时按【Ctrl+Shift + 回车键】来完成输入。

这样,我们就达到了想要的效果。

这种方法,所用的函数比较多且公式复杂,特别是在数据量较多的情况下,由于是数组公式,运算量会很大,会有卡顿现象。

对于这两个公式,我们今天就不展开讲解了,因为会占用大量的篇幅。

下面,是更好的方法!

错位引用法

❶ 在 A7 单元格输入公式,然后向右、向下拖拽;

=B2

❷ 将 A2:A21 的数据复制到 G2:G21 中,注意,在粘贴的时候要使用选择性粘贴 – 数值来进行。

❸ 这时候,姓名并不是首尾相连的,中间还夹杂着很多 0,我们按下【Ctrl+G】组合键,打开定位功能,单击定位条件,选择「常量」,将数字以外选项的勾都去了,单击确定。

❹ 这时候,内容为 0 的单元格,已经全部被选中,鼠标移动到任意一个 0 值的单元格上,依次单击:

鼠标右键 – 删除 – 下方单元格上移 – 确定,完成删除 0 值单元格的操作,并作适当的格式调整。

对于部门列,依旧使用上述公式来完成,即:

=INDEX($A$1:$D$1,1,MATCH(1,MMULT(TRANSPOSE(--($A$2:$D$6=G2)),ROW($A$1:$A$5)^0),0))
▲ 左右滑动查看

注意:这个是数组公式,需要同时按【Ctrl+Shift + 回车键】来完成输入。

数据中夹杂 0 值的原因,是因为,我们的原始数据源中,有空单元格存在:

这种方法,相较于公式法来说已经简单了很多,但依旧不适用于处理大量的数据。

那么有没有一种快捷、高效又能从容应对大量数据的方法呢?

答案是肯定的,那就是我们的 Power Query

Power Query 法

❶ 鼠标定位到数据区域中的任意单元格(本例为 A1:A6),点击「Power Query」-「从表 / 范围」,在弹出的对话框中勾选「表包含标题」,单击确定;

❷ 此时,会打开 Power Query 的主界面。

单击第一列的标题,按住【Shift】,再次单击最后一列的标题,这样我们可以快速的选中全部列;

❸ 单击「转换」-「逆透视列」,在下拉列表中选择「逆透视列」,完成数据结构的转换;

❹ 这时,我们看到,相同的部门并没有集中在一起,并且「部门」和「姓名」两列,对应的的标题分别是「属性」和「值」。

这是 Power Query 默认的标题名称,并不是我们想要的。

我们分别将「属性」重命名为「部门」,「值」重命名为「姓名」,然后单击姓名右侧的下拉按钮,选择升序或降序,对部门列进行排序,以便将相同的部门集中在一起。

❺ 单击文件 – 关闭并上载至,在弹出的对话框中,显示方式选择 – 表。

位置的话,这里我们选择,放在现有工作表的 F1 单元格处,当然你也可以根据自己的需要,选择新建工作表;

❻ 最后,可以根据自己的需要对其进行格式、字体等的进一步调整、美化。

很高效有没有?

最后偷偷告诉你,用这个方法转换出来的表,虽然没有用任何函数,但同样可以动态更新哦!

本文来自微信公众号:秋叶 Excel (ID:excel100),作者:大表弟,编辑:竺兰

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注