欢迎光临散文网 会员登陆 & 注册

Excel之PowerQuery 提取单元格指定文字并转换格式

2022-12-05 21:41 作者:孙兴华zz  | 我要投稿

网友问题:

图片放大:

把网友问题转成中文说:

第1个需求:取每个单元格孙兴华之后的2至3行

第1个知识点:添加列

如下图所示,下划线代表每个记录

我们取每个记录的内容字段,现在的[内容]代表每个单元格中的文本

第2个知识点:取指定字符之后的值

第3个知识点:换行符

第4个知识点:文本分割

我们取每个List第3和第4个数据,就是孙兴华后面的第2~3行

第5个知识点:取列表中的元素

到了这一步是个分界点,实现两个需求都从这一步开始

需求1,文本合并

需求2,回到分届点那里,继续思考

我们需要遍历每个List中的每个值

现在这个x代表每个List中每行的文本

再对每个值通过冒号(注意全角与半角)分割成List

随便点一个List进去看看

这不就是一张表中的两个列吗?

如下图所示,转成的表需要将表头提升

既然网友都说了,取2~11列,那就不存在动态表头问题了,这里直接展开即可。

如果需要动态表头,取每个Table的表头成一张列表去重得到唯一值,以前已经多次讲过了。


返回结果:

好的,现在我把第1个需求和第2个需求的代码发出来

第1个需求:

第2个需求:


友情提示:上载后设置单元格自动换行

我个人认为第2个需求应该如上图方案显示,如果按网友要求显示,我们先回到这一步

对每个List进行合并

如果List中有4个元素,那将来的表头就是  项目1、内容1、项目2、内容2  

我们使用 List.Count 算出每个List有多少个数,除2

假设有四个元素,我们要 项目1、内容1、项目2、内容2  是两对儿

List.Count(*****) / 2

我们可以写成{"1"..List.Count(*****) / 2}  然后遍历这个列表,让他变成我们需要的表头

现在表头有了,我们把之前的列表按行转成表,加上表送就可以了

我们将它按行转表

先把表送写固定

最终结果:

最终结果的代码如下:

展开后

本文章配套课件已发到评论区

PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e

更多教程:https://www.bilibili.com/read/cv10222110


Excel之PowerQuery 提取单元格指定文字并转换格式的评论 (共 条)

分享到微博请遵守国家法律