首先展示一下“提取”功能点的位置,在“转换”菜单和“添加列”菜单中都有这个功能,唯一的区别在于:
“转换”菜单:在选中的当前列进行直接处理;
“添加列”菜单:在选中列进行处理之后新增一列显示;
这边的“提取”功能里面有如下四个功能:
1、长度:相当于Excel里面的Len()函数。
2、首字符:相当于Excel里面的Left()函数。
3、结尾字符:相当于Excel里面的Right()函数。
4、范围:相当于Excel里面的Mid()函数。
其中这个“范围”提取与Mid()函数最大的不同点是:“范围”提取从索引“0”开始计数,而Mid()函数则是从“1”开始。
下面讲解一个有趣的例子。
左侧表学生姓名,考试成绩,我们现在的需求是右边的按照等级计算人数以及平均分。
我们约定:
>=90 优 |
>=80 良 |
>=60 中 |
<60 差 |
下面为了演示这个精确取数的例子,我们用一种特别的方法进行处理。
新增一列,内容为“分数/10“。
然后我们按照这个小数点进行拆分列。
接着我们再新增一列,名字为”等级“,如下图所示:
有11位,这样我们其实可以看出端倪来了,目的是为了根据前面的”位置“进行取数,确定”等级“。
接下来我们从”0“开始提取一个字符。
聪明的朋友或许已经发现,我们要实现的目的其实就是用”位置“去替代”0“。
直接更改上面的公式:
= Table.AddColumn(已添加自定义1, "文本范围", each Text.Middle([等级], [位置], 1), type text)
发现要求已经满足。
最后对”等级“列进行”分组依据“。
要求达成。