公式太难,手动太慢,这才是NO.1的Excel整理工具!
点击关注【秋叶 Excel】
发送【6】
领取秋叶 Excel 6 年精选文章合集
作者:小爽
编辑:竺兰
每年我们公司的行政人事部,都会对公司的活动经费进行规划,以及预算审核。
不同部门,在不同月份,活动经费的数额可能不同。
为了方便登记、查看、以及打印,他们会将表格制作成如下图的样子。
这样看起来比较直观,部分表哥表姐也喜欢把表格做成这种样式。
但是如果需要更快速地分析活动经费的分配情况,将其整理为一维表的格式,然后利用数据透视表分析,可能更加合适。
那如何整理上述数据呢?
如果你用的是Office 365或 WPS 的话,可以直接使用Vstack函数,将不同的数据区域,按照竖直方向进行拼接。
注:对应区域事先做好了区域命名。
如果你不是 Office 365,直接使用传统 Excel 函数做法,很难做出来。这时,就需要用到数据整理的利器——PoweQuery。
下面我来简单介绍一下它的做法。
具体操作
我们事先进行预处理操作,导入表,筛选去掉列中的表头和 null(空)值。
❶ 将数据导入到 PQ 编辑器中。
全选数据区域,在【数据】选项卡中,选择【来自表格/区域】-创建表-【确定】,进入 PQ 编辑器。
❷ 单击部门的筛选下三角,取消勾选【部门】和【null】,单击【确定】按钮。
对于多区域的表,利用 PowerQuery,我们可以按照多种形式进行合并,下面我介绍的做法是按照每一行的的方式,进行合并。
接下来,我们进行表格转换处理。
▋第一步:将行转 List
利用 Table.ToList,将表中的每一行形成 List。
Table.ToList:将表按行方向形成 List
以下图为例,公式返回的结果中,列表中的每一行,就是表中每行所对应的数据。
▋第二步:移除每一行中的 null 值
List.RemoveNulls:移除列表中的 null
▋第三步:拆分每一个 list
我们可以看到每一个 List 之间,三个数据为一组。
所以我们直接利用 List.Split 函数将数据进行拆分处理。
List.Split:列表拆分
Split 是分开的意思,List.Split 的意思就是将列表按照每 N 个拆开,形成单独的 List。
▋第四步:转表
将每个 List 按行进行转表,这里我们用 Table.FromRows 函数(或 Table.FromList)。
Table.FromRows:将 list 形成的列表转换为行方向的表
那我们需要的表标题,可以怎么样获取呢?
获取标题行,我们可以先用 Table.ColumnNames 获取标题的 List,然后 List.FirstN 取前三个标题。
Table.ColumnNames:获取表中的标题
List.FirstN:获取列表中的前 N 个
我们将写好的标题函数贴在,Table.FromRows 函数的第二参数上,此时就已经完成拆分后的转换,最后进行表合并即可。
▋第五步:合并
最后利用 Table.Combine 进行合并,到这里就完成了。
Table.Combine:将列表中的多个 Table 表进行合并
将处理好的数据上传到表。
延伸拓展
上面讲的是按照每一行进行转换合并,那么按照每一列进行合并,这应该怎么做?
其实跟前面也是一样的思路,只不过使用的函数稍微有点变化。
如下图:
❶ 将表中每一列转换列表(Table.ToColumns),
❷ 移除 null 值(List.Select),
❸ 每 3 列进行拆分(List.Split),
❹ 列表循环(List.Transform),按列转表(Table.FromColumns),
❺ 最后合并(Table.Combine)
本文讲解的是,将间隔相同的多区域表,进行数据合并。
手动复制粘贴的做法也可以,但是数据更改后,无法自动更新。
利用Office 365 或 WPS 中的 Vstack 函数,我们可以将多个区域直接进行竖直方向的拼接。
数据整理,最常用的利器就是 PowerQuery。利用它,基础的界面操作就可以完成很多整理工作,但是稍微复杂一点点的,就得需要一丢丢 M 函数。
对于没有 M 函数基础的小伙伴,本文可能看得有点吃力,但是如果我们的数据规范的话,其实也并不需要搞这些。
所以大家平时最好规范一下数据的记录,这样就可以减少很多不必要的工作啦
如果你想学习更多实用的 Excel 干货,那么千万别错过这次的《秋叶 Excel 3 天集训营》!
用 3 大学习模块,每天 30 分钟,教你玩转 Excel!
秋叶 Excel 3 天集训营
赶紧点击加入吧 !
报名后,自动弹出班主任微信
扫码添加,还可领取:
35 个常用函数说明
点击下方卡片关注【秋叶 Excel】
发送【6】
领取秋叶 Excel 6 年精选文章合集