提取多個不同分隔符之間的字符
?
作者:老菜鳥來源:部落窩教育發布時間:2023-08-17 22:50:42點擊:72
提取多個不同分隔符之間的字符,可以將字符串拆分成多列或多行,然后用VLOOKUP或HLOOKUP查找需要的部分。
今天分享提取多個不同分隔符之間的字符實例,如圖所示,需要提取品名中的規格。
較明顯的規律:
(1)規格位于一對括號之間;
(2)規格包含獨有字符“*”“支”。
思路:
利用括號作分隔符將字符串拆分成多列或者多行,然后通配符查找含“*”或“支”的部分。
譬如,把A2拆分成多列或多行。
公式1:適合365版本
=HLOOKUP("*支*",TEXTSPLIT(A2,{")","("}),1,0)
解析:
公式中用了365中的一個函數TEXTSPLIT。它有6個參數,當前公式中只用了前兩個參數將字符串拆分成了多列,然后用HLOOKUP橫向查找。
公式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等函數提取統一的字節數而不是字符數。
本文配套的練習課件請加入QQ群:902294808下載。
做Excel高手,快速提升工作效率,部落窩教育Excel精品好課任你選擇!
掃下方二維碼關注公眾號,可隨時隨地學習Excel:
相關推薦:
4大查找函數入門
版權申明:
本文作者老菜鳥;部落窩教育享有稿件專有使用權。若需轉載請聯系部落窩教育。