前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Query清洗标题行错位的数据

Power Query清洗标题行错位的数据

作者头像
wujunmin
发布2021-09-27 10:54:07
1K0
发布2021-09-27 10:54:07
举报
文章被收录于专栏:wujunminwujunmin

案例来源于一位同学的一种设备,去敏后格式如下:指标涉及100多个,每次测量的指标不一样,也就是说,设备除了“数据编号”外,其他标题名称错位存放于同一工作表中。另外,每个编号的条目数量(行数)不一样,大部分1条,但有的是2条或3条。

经Power Query处理后,结果如下:

处理的原理是:依据Power Query按照列名识别数据的特点,将每个数据编号分组,拆分为独立的表格,然后独立小表格提升标题后合并。实施过程如下。

将数据源导入Power Query后添加索引列,用于识别每个“数据编号”出现的位置。

筛选列1的数据编号内容,界面只留下了所有标题,为这个筛选后的表再建一个索引,命名为“分组”,后期表格将按照此分组拆分。

Power Query的每一步操作生成的步骤可以看作一个表,不同的表之间可以相互调用。前面已经有了四个步骤对应四个表。现在的问题是,最后的步骤使得界面停留在仅剩标题的状态,数据被筛选掉了。而需要的结果是,对原始表进行分组索引。

所以,我们需要将“分组索引”表生成的“分组”添加到“全部数据索引”表中,添加的方式是合并查询,在分组索引后新增以下公式:

代码语言:javascript
复制
= Table.NestedJoin(全部数据索引, {"索引"}, 分组索引, {"索引"}, "分组编号", JoinKind.LeftOuter)

展开后如下图所示:

接着使用向下填充功能填充空白,全部数据即实现了编号和分组。

除了合并查询,还可以使用自定义函数的方法对数据分组编号,详见pqfans.com施阳老师的文章。

这两种方法都不好理解,最简单最容易理解的方法其实是直接在Excel界面中的数据源加一列:

分组编号确立后,使用分组依据功能将表格内容缩回:

添加自定义列删除每个表的分组编号(只保留数据源内容),然后提升标题,展开自定义列后即可得到文章开头的清洗结果。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档