我知道這個問題似乎是多余的,但找不到答案。我有一個文本字串,例如:
ABCDEF
我想只提取用“-”分隔的前 4 個專案。結果應該是
A B C D
或者,我也希望僅提取第三項:
C
我一直在嘗試 MID 和 SEARCH 功能,但沒有成功。任何幫助將不勝感激。
uj5u.com熱心網友回復:
使用 TEXTSPLIT(截至撰寫本文時,僅適用于 Office 365 Insider Beta 頻道)
=TEXTJOIN("-",TRUE,INDEX(TEXTSPLIT(A1,"-"),1,{1,2,3,4}))
更改{1,2,3,4}為3第三個。
如果一個人沒有 TEXTSPLIT 但有 TEXTJOIN 并且在 PC 上,那么:
=TEXTJOIN("-",TRUE,INDEX(FILTERXML("<a><b>"&SUBSTITUTE(A1,"-","</b><b>")&"</b></a>","//b"),1,{1,2,3,4}))
如果沒有 TEXTJOIN,它將需要 vba。就像這個模仿 TEXTJOIN 的 UDF:
? 單元格B1中使用的公式
=TEXTJOIN("-",,TAKE(TEXTSPLIT(A1,"-"),,4))
? 單元格D1中使用的公式
=TEXTJOIN("-",,DROP(TEXTSPLIT(A1,"-"),,-2))
? 單元格C1中使用的公式
=TEXTJOIN("-",,INDEX(TEXTSPLIT(A1,"-"),,3))
注意:上面顯示的公式僅適用于O365 用戶、Insider Beta 頻道用戶!
但是,如果您有權訪問 Excel 2019,則可以使用TEXTJOIN()或CONCAT()

? 單元格B9中使用的公式
=SUBSTITUTE(CONCAT("-"&INDEX(FILTERXML("<t><s>"&SUBSTITUTE(A9,"-","</s><s>")&"</s></t>","//s"),ROW(A1:A4))),"-","",1)
? 單元格C9中使用的公式
=SUBSTITUTE(CONCAT("-"&INDEX(FILTERXML("<t><s>"&SUBSTITUTE(A9,"-","</s><s>")&"</s></t>","//s"),3)),"-","",1)
由于 OP 在評論中提到,OP在MAC中使用O365,因此這里有一個更新。

? 單元格B1中使用的公式
=TEXTJOIN("-",,TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",100)),COLUMN(A1:D1)*99-98,99)))
? 單元格C1中使用的公式
=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",100)),COLUMN(C1)*99-98,99))
或者,
? 單元格D1中使用的公式
=TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",100)),200,100))
uj5u.com熱心網友回復:
對于 Excel MAC 及更早版本:
提取前四個:
=LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),4))-1)
提取第三個:
=MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),2)) 1, FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),3))-FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),2))-1)

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/465698.html
上一篇:如何在excel中合并多個序列?
