作者:小北童鞋
来源:芒种学院(ID:lazy_info)
近期在学习社群中收到不少小伙伴关于「文档合并」的提问,其实绝大部分字段规范/相同的文档,可以使用PQ快速进行合并。
但是如果碰上这种字段缺失或者字段并不完整的文档需要如何合并呢?
例如各销售人员各个月份的销售额,月份数据并不完全一致如下:

不同地区的销售员分别统计了不同的月份,如果是这类字段不同的表格,那么如何快速合并呢?
使用传统的 PQ 合并工作簿下的Sheet这招肯定行不通了,因为在展开的时候,数据就会发生丢失了,并且标题也不见了。
其实这一类不规则“乱糟糟”的表格文档要快速合并,利用PQ还有另外一种非常快捷的办法——逆透视后合并。
没见过吧,这个技巧用于合并字段不完整的表格超级高效,现在就来和小北一起学习下吧~
PQ导入工作簿
首先将这几张 Sheet 表导入到 PQ 中,操作也非常简单,选中「数据」选项卡下的「自工作簿」。
然后选中需要导入的工作簿,导入后如下:

观察下数据,插入一个新步骤提取「Data」列。

可以发现「Data」虽然完整的保留了数据,但是标题丢失了。
所以需要将「第一行提升为标题」,这里由于被嵌套了,不能直接通过菜单操作。
修改公式为:= List.Transform(源[Data], each Table.PromoteHeaders(_, [PromoteAllScalars=true]))
这句话的目的也非常简单,列表遍历将第一行提升为标题,处理结果如下:

可以看到第一行都是标题了,整体的数据预处理部分就已经搞定了。
PQ逆透视数据列
虽然数据处理完毕了,但是仍不能直接进行合并,因为字段标题是不一致的。
我们可以将数据逆透视为“姓名、月份、销量”这一类的一维表。
这样所有的表格字段就统一了,插入一个新步骤,命名为“逆透视”。
公式如下:
= List.Transform(数据预处理, each Table.UnpivotOtherColumns(_, {"姓名"}, "月份", "销量"))Code language: Excel (excel)
现在来观察下数据,可以发现所有的表格字段就可以统一了。

接下来点击「转换」选项卡下的「到表」,然后将所有的字段全部提取出来。

现在我们就得到一份合并过后的「一维表」了,是不是非常简单呢?
当然如果想要将表格式转换回原来的样子,直接透视即可。
PQ透视列转换为原始表格
选中「月份」列,点击「转换」选项卡下的「透视列」。
选择「销售额」为直列,并且不要进行聚合,结果如下。

现在我们就实现了逆透视、合并、透视的一个完整流程,并且将我们原本不规则的表格快速进行合并。
刷新数据也非常简单,比如:新增了“5月”,直接刷新就可以完成再次合并。

是不是非常简单,但是非常高效呢?其实在PQ中有非常多这一类的操作技巧。
可以将原本很难处理的需求拆分成多个小步骤,轻松即可实现。
好了,那么今天的「乱糟糟的表格合并」小技巧就分享到这里了,你还有哪些合并不了的表格案例么?欢迎分享呀~
© 版权声明
文章版权归作者所有,未经允许请勿转载。




您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。
终于开张了,期待你的更新。
第一篇文章呀,加油写!
第一篇文章就这么简洁,有点东西。
第一篇就这么随便?还以为有啥惊喜呢。
这标题……是故意整活还是手滑发错了?hhh
PQ这招对付乱表还真管用,回头试试看。
确实,处理乱表很高效
逆透视这招有点意思,回头拿我那堆销售报表试试。
等你的测试反馈
WordPress新手求助,主题怎么换啊?那个啥,找不到入口
逆透视真的省事儿,没想到还能这么玩 😂
这个步骤在老版Excel里还能用吗?我这边是2016版
老用户表示,这种开场白看了上百次了,没啥意思
我之前合并月度报表也卡住,照这办法一下子通了
这个技巧太实用了,之前合并报表总是搞不定
这招比我想的简单,回头试试看
PQ这些隐藏功能还挺多,得慢慢摸索
是得花点时间研究
这个逆透视操作原来这么管用啊。
我也刚学会这招
逆透视这招挺妙的,合并报表省事了
原来PQ还能这么玩,涨姿势了。
同感,又学到了一招。
我之前搞过这个,确实折腾了好久才弄好首页
等等,这是正式文章还是测试帖?一脸懵