Power Query-文本字符的精确提取

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

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

“添加列”菜单:在选中列进行处理之后新增一列显示;
Power Query-文本字符的精确提取_第1张图片

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

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

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

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

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

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

下面讲解一个有趣的例子。
Power Query-文本字符的精确提取_第2张图片

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

我们约定:

=90 优
=80 良
=60 中
<60 差

下面为了演示这个精确取数的例子,我们用一种特别的方法进行处理。
新增一列,内容为“分数/10“。
Power Query-文本字符的精确提取_第3张图片
Power Query-文本字符的精确提取_第4张图片

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

Power Query-文本字符的精确提取_第5张图片

接着我们再新增一列,名字为”等级“,如下图所示:
Power Query-文本字符的精确提取_第6张图片
Power Query-文本字符的精确提取_第7张图片

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

接下来我们从”0“开始提取一个字符。
Power Query-文本字符的精确提取_第8张图片
Power Query-文本字符的精确提取_第9张图片

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

直接更改上面的公式:

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

发现要求已经满足。
Power Query-文本字符的精确提取_第10张图片

最后对”等级“列进行”分组依据“。
Power Query-文本字符的精确提取_第11张图片

要求达成。Power Query-文本字符的精确提取_第12张图片

作者:SAP剑客
来源:CSDN
原文:https://blog.csdn.net/zhongguomao/article/details/54315458?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(power,query,excel)