在 Excel 中有一個資料表,其中下圖左的原始字串,想要從中取出【】中間的字元,該如何處理?

觀察下圖,其中【】的前、中、後的字元數量,每個儲存格都不相同。

Excel-取出特定符號之間的字(SUBSTITUE,REPT)


【公式設計與解析】

儲存格C2:=SUBSTITUTE(MID(SUBSTITUTE(SUBSTITUTE(A2,"【",REPT("*",20)),
"】",REPT("*",20)),21,20),"*","")

公式(1) SUBSTITUTE(A2,"【",REPT("*",20))

透過 SUBSTUTE 函數將「【」字元,置換為 20 個『*』字元。其中參數 20,是假設【】的前、中、後的字元不會超過 20 個字元。

公式(2) SUBSTITUTE(SUBSTITUTE(A2,"【",REPT("*",20)),"】",REPT("*",20))

取公式(1)式的傳回值,將將「】」字元,置換為 20 個『*』字元。結果如下圖:

Excel-取出特定符號之間的字(SUBSTITUE,REPT)

MID(公式(2)傳回值,21,20):將以上所得的字串,從第 21 個字開始取 20 個字。

觀察下圖,第21個字必定還是『*』:

Excel-取出特定符號之間的字(SUBSTITUE,REPT)

最後透過 SUBSTITUE 函數將所有的『*』置換為空白字串。

公式:SUBSTITUTE(MID(上式傳回值,21,20),"*",""))

Excel-取出特定符號之間的字(SUBSTITUE,REPT)

vincent 發表在 痞客邦 留言(1) 人氣()