编按:提取多个不同分隔符之间的字符,可以将字符串拆分成多列或多行,然后用VLOOKUP或HLOOKUP查找需要的部分。
今天分享提取多个不同分隔符之间的字符实例,如图所示,需要提取品名中的规格。
较明显的规律:
(1)规格位于一对括号之间;
(2)规格包含独有字符“*”“支”。
思路:
利用括号作分隔符将字符串拆分成多列或者多行,然后通配符查找含“*”或“支”的部分。
譬如,把A2拆分成多列或多行。
公式1:适合365版本
=HLOOKUP("*支*",TEXTSPLIT(A2,{")","("}),1,0)
解析:
公式中用了365中的一个函数TEXTSPLIT。它有6个参数,当前公式中只用了前两个参数将字符串拆分成了多列,然后用HLOOKUP横向查找。
点此处查看TEXTSPLIT的用法。
公式2:高低版本皆可
=TRIM(VLOOKUP("*支*",MID(SUBSTITUTE(SUBSTITUTE(A2,")","("),"(",REPT(" ",99)),(ROW($1:$6)-1)*99+1,99),
1,0))
解析:
串联两个SUBSTITUTE将每个括号替换成99个空格;然后依次从1、100、199、…595处提取99个字符,将字符串拆分成多行。
以上两种方法非常适合提取多分隔符之间的字符。
当然,本案例还有其他方法,下面抛砖引玉提出一些思路。
思路1
先把年份全部去掉,再提取最后一组括号内的内容。
思路2
找到关键字符“*”位置,然后减去3个字符后提取11个字符,最后再提取“)”前的字符。
提取“)”前的字符,至少有三种方法:查找后提取、替换后提取、用365的TEXTBEFORE提取。
思路3
找到另一个关键字符“支”,然后用类似思路2的方法进行提取。
注意“支”前的规格字符数不等,相差1个字节(如“70克*35”与“20克*4”),适合用MIDB、LEFTB等函数提取统一的字节数而不是字符数。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
学习交流请加微信hclhclsc进群领取资料
相关推荐:
利用99个空格来提取字符
7个文本提取函数的用法
4大查找函数入门
为何条件格式下无法按颜色求和?
版权申明:
本文作者老菜鸟;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。
领取专属 10元无门槛券
私享最新 技术干货