『问题』
『回答』
用Excel函数求最后(右侧)一个字符所处的位置,如果是Excel原来的函数,需要比较繁琐或难以理解的套路。
同时,通常来说,这个需求的目的是为了提取或分离其中的数据,并用于进行后续更多的数据处理和分析,因此,如果有条件,尽可能用Excel2016的新功能Power Query(Excel2010或Excel2013可到微软官方下载相应的插件)来实现整个数据处理过程的自动化。
再回到这个具体问题,在Power Query里实现起来,也更加简单,一个函数搞定,而且不需要任何脑洞大开的套路。
一、函数法取最右侧某字符的位置
Power Query里的Text.PositionOf函数用法跟Excel中的find函数类似,但其中的第3个参数,可以用于确定返回的是第1个出现,还是最后出现,或所有出现的位置。分别如下:
- 0:返回第1个,也可以写成Occurrence.First;
- 1:返回最后1个,也可以写成Occurrence.Last;
- 2:返回所有,也可以写成Occurrence.All。
如果需要取最后一个数字的位置,那也很简单,如下所示:
二、直接按最右侧字符分列
实际上,如果是为了按最右侧字符进行分列,在Power Query里是直接支持的。如下图所示:
三、直接提取分隔符之间的文本
如果需要直接提取最后的=和/之间的数字(1050),那在Power Query也是可以一步到位的,如下图所示:
从上面可以看出,无论是哪一种场景,通过Excel的新功能Power Query来实现都非常的简单方便,而且,最关键的是,如果后续还需要进行其他相关数据处理,那可以全部在Power Query里一气呵成地做,这样在以后有新的数据进来后,可以一键刷新即得最新数据处理结果,实现报表的自动化。