首先展示一下 “提取” 功能点的位置,在 “转换” 菜单和 “添加列” 菜单中都有这个功能,唯一的区别在于:

    “转换” 菜单:在选中的当前列进行直接处理;

    “添加列” 菜单:在选中列进行处理之后新增一列显示;

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图1

    这边的 “提取” 功能里面有如下四个功能:

    1、长度:相当于 Excel 里面的 Len()函数。

    2、首字符:相当于 Excel 里面的 Left()函数。

    3、结尾字符:相当于 Excel 里面的 Right()函数。

    4、范围:相当于 Excel 里面的 Mid()函数。

    其中这个 “范围” 提取与 Mid()函数最大的不同点是:“范围”提取从索引 “0” 开始计数,而 Mid()函数则是从 “1” 开始。

    下面讲解一个有趣的例子。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图2

    左侧表学生姓名,考试成绩,我们现在的需求是右边的按照等级计算人数以及平均分。

    我们约定:

    下面为了演示这个精确取数的例子,我们用一种特别的方法进行处理。

    新增一列,内容为 “分数 / 10“。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图3

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图4

    然后我们按照这个小数点进行拆分列。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图5

    接着我们再新增一列,名字为” 等级 “,如下图所示:

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图6

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图7

    有 11 位,这样我们其实可以看出端倪来了,目的是为了根据前面的”位置 “进行取数,确定” 等级“。

    接下来我们从”0“开始提取一个字符。
    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图8

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图9

    聪明的朋友或许已经发现,我们要实现的目的其实就是用” 位置 “去替代”0“。

    直接更改上面的公式:

    \= Table.AddColumn(已添加自定义 1, “文本范围”, each Text.Middle([等级], [位置], 1), type text)

    发现要求已经满足。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图10

    最后对”等级 “列进行” 分组依据“。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图11

    要求达成。

    (2条消息) 22、Power Query-文本字符的精确提取_少年休闲海-CSDN博客_power query提取文本 - 图12
    https://saper.blog.csdn.net/article/details/54315458