提取最后一个规格,你会吗?


面对不规则的产品规格,现需要提取最后一个规格,即最后一个“-”后面的数据,有什么方法能解决呢?



1、数组公式:



输入公式:

=MID(B2,MAX((MID(B2,ROW($1:$99),1)="-")*ROW($1:$99))+1,99)

数组公式,按<ctrl>三键结束。/<ctrl>

MID(文本字符串,开始提取位置,要提取的字符个数)

用函数ROW($1:$99)构造一个1至99的序列;

MID(B2,ROW($1:$99),1)部分表示从字符串的第1,2,3…99位置开始提取,每次提取的字符个数为1;



MID(B2,ROW($1:$99),1)="-"部分表示如果提取的字符等于“-”,返回逻辑值TRUE,否则返回FALSE;



在*ROW($1:$99)返回的就是对应每个“-”在字符串中的位置;



用函数MAX取最大值,返回的就是字符串中最后一个“-”所在位置;



最后再用函数MID提取

公式其实就是=MID(B2,12+1,99)

第一参数:文本字符串B2单元格

第二参数:最后一个“-”所在位置12,提取的是”-“后面的数据,所以要加1

第三参数:要提取的字符个数,这里用的是99


2、常规公式



输入公式:

=TRIM(RIGHT(SUBSTITUTE(B2,"-",REPT(" ",99)),99))

函数REPT:根据指定次数重复文本。

REPT(" ",99)是将空格重复99遍;

用函数SUBSTITUTE将“-“替换成99个空格;

再用函数RIGHT向右提取99个字符数;

提取后的字符中有空格,用函数TRIM删除字符串中多余的空格。


3、快速填充

提取最后一个“-“后面的数据,使用快速填充功能也是可以的,但需要注意的是提取的结果中有0开头的数据,这要怎么办呢?

第一步:设置单元格格式为文本



第二步:输入一个最后一个“-“后面的数据



第三步:按<ctrl>键/<ctrl>



这次的分享对大家有帮助吗?

看完别忘收藏转发哦~