Excel之PowerQuery 提取单元格指定文字并转换格式
网友问题:

图片放大:


把网友问题转成中文说:
第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