我在EXCELL中有一個長字串,看起來與此類似,但更長:
44625,梅賽德斯,44625.5984,"9487",8.99,469.515,"0.1102";"8272.1","0","12","3.63","129"," 32 "
我需要一個公式來提取最后兩個引號之間的所有數字。在此示例中,它將是32。
問題是所有數字都是可變的,因此,它們可以具有可變的位數。所以最后一個數字可以是“1234”或只是“1”。
此外,它可以有可變數量的小數空格,例如“123.22”或“11.12345”
我想只提取數字,不帶引號,以便我可以使用這個數字進行進一步的操作。
此外,“文本到列”不是一個選項,因為我需要一個公式。
我正在為 Microsoft 365 MSO 版本 2201 使用 Excel。
最好的問候,馬爾科
uj5u.com熱心網友回復:
我認為,您可以使用帶有引號引數的 split() 函式。然后,您可以使用字串物件的 last() 方法來實作您的目標。
uj5u.com熱心網友回復:
您需要使用此公式,如下圖所示,
單元格 A3 中使用的公式
=SUBSTITUTE(FILTERXML("<a><b>"&SUBSTITUTE($A1,",","</b><b>")&"</b></a>","//b[last()]"),"""","")
此公式特別
uj5u.com熱心網友回復:
還有一個公式,首先反轉字串以獲取引號的最后一個位置,然后使用Right()來獲取最后一個值,最后Substitute()只獲取數字。反轉字串來自這個 SO 帖子:如何在沒有 VBA 的情況下在 EXCEL 中反轉文本, Scott Craner 回答
=SUBSTITUTE(RIGHT(A1,FIND("""",CONCAT(MID(A1,LEN(A1)-ROW($ZZ$1:INDEX($ZZ:$ZZ,LEN(A1))) 1,1)),2)),"""","")
uj5u.com熱心網友回復:
如果您的字串通常按照您顯示的方式格式化,最后一個參考的值位于字串的末尾,則以下內容將起作用:
=TRIM(RIGHT(SUBSTITUTE(A1,"""",REPT(" ",99)),198))
該公式會將值作為文本回傳。要將其作為數字回傳,您可以使用雙一元將其轉換。例如:
=--TRIM(RIGHT(SUBSTITUTE(A1,"""",REPT(" ",99)),198))
如果最后參考的值不在字串的末尾,或者不是數值,請嘗試:
=FILTERXML("<t><s>" & SUBSTITUTE(A1,"""","</s><s>") & "</s></t>","//s[number(.)=number(.)][last()]")
如果這不起作用,請提供一個更好的例子。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/439897.html
上一篇:郵件合并:在一頁中列印兩個收件人
