
答案:通過(guò)MID與FIND函數(shù)組合可提取圓括號(hào)內(nèi)內(nèi)容,結(jié)合IFERROR處理錯(cuò)誤;使用SUBSTITUTE與TRIM函數(shù)清理并提取單對(duì)括號(hào)文本;利用VBA正則表達(dá)式函數(shù)提取任意類型括號(hào)內(nèi)容;對(duì)于固定結(jié)構(gòu)數(shù)據(jù),可用SEARCH與LEN函數(shù)計(jì)算位置后提取。
如果您需要從Excel單元格中提取括號(hào)內(nèi)的文本或數(shù)字,但原始數(shù)據(jù)中包含多種格式的括號(hào)內(nèi)容,則可能是由于字符串位置不固定導(dǎo)致難以直接讀取。以下是解決此問(wèn)題的步驟:
本文運(yùn)行環(huán)境:DellXPS13,Windows11
一、使用MID和FIND函數(shù)組合提取圓括號(hào)內(nèi)容
該方法適用于提取英文圓括號(hào)()中的內(nèi)容。通過(guò)FIND定位括號(hào)的位置,再用MID截取中間字符。
1、在目標(biāo)單元格輸入公式:=MId(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)。
2、按Enter鍵確認(rèn),即可顯示括號(hào)內(nèi)的內(nèi)容。
3、若源數(shù)據(jù)不含括號(hào),公式會(huì)返回錯(cuò)誤,可結(jié)合IFERROR進(jìn)行容錯(cuò)處理。
二、使用SUBSTITUTE和TRIM函數(shù)清理并提取內(nèi)容
當(dāng)數(shù)據(jù)中僅包含一對(duì)括號(hào)且需去除其他符號(hào)時(shí),可通過(guò)替換方式間接提取括號(hào)內(nèi)文本。
1、先將右括號(hào)右側(cè)內(nèi)容替換為空:=TRIm(SUBSTITUTE(RIGHt(SUBSTITUTE(A1,"(",REPT("",LEN(A1))),LEN(A1)),"",""))。
2、再嵌套LEFT函數(shù)去除末尾的右括號(hào)部分。
3、最終公式為:=TRIm(LEFt(SUBSTITUTE(RIGHt(SUBSTITUTE(A1,"(",REPT("",LEN(A1))),LEN(A1)),"",""),FIND(")",RIGHt(SUBSTITUTE(A1,"(",REPT("",LEN(A1))),LEN(A1)))-1))。
三、利用正則表達(dá)式與VBA自定義函數(shù)提取任意括號(hào)內(nèi)容
對(duì)于包含中文【】、〔〕或多種括號(hào)混用的情況,可編寫VBA函數(shù)實(shí)現(xiàn)通用提取。
1、按下Alt+F11打開VBA器,插入新模塊。
2、輸入以下代碼:
FunctionGetBracketText(cellAsRange)AsStringDimregExAsObjectSetregEx=CreateObject("VBscript.RegExp")regEx.Pattern="[((【[〔].*?[))]】〕]"regEx.Global=FalseIfregEx.Test(cell.Value)ThenDimmatchesSetmatches=regEx.Execute(cell.Value)GetBracketText=Mid(matches(0),2,Len(matches(0))-2)ElseGetBracketText=""EndIfEndFunction
3、關(guān)閉器,在工作表中使用公式:=GetBracketText(A1)提取結(jié)果。
四、結(jié)合SEARCH與LEN函數(shù)處理固定結(jié)構(gòu)數(shù)據(jù)
當(dāng)所有數(shù)據(jù)均以相同模式包含單個(gè)括號(hào)對(duì)時(shí),可通過(guò)計(jì)算字符長(zhǎng)度差提取內(nèi)容。
1、確定左括號(hào)位置:SEARCH("(",A1)。
2、確定右括號(hào)位置:SEARCH(")",A1)。
3、使用MID函數(shù)提取:=MId(A1,SEARCH("(",A1)+1,SEARCH(")",A1)-SEARCH("(",A1)-1)。
4、確保每個(gè)單元格都存在完整的括號(hào)對(duì),否則會(huì)出現(xiàn)#VALUE!錯(cuò)誤。
以上就是excel如何用公式提取括號(hào)里的內(nèi)容_excel函數(shù)提取括號(hào)內(nèi)文本或數(shù)字的詳細(xì)內(nèi)容,!

