簡體   English   中英

Excel 公式從中間提取文本

[英]Excel formula to extract text from mid

在這里,我使用以下公式從文本中提取中間名

=MID(I2, SEARCH("-",I2) + 1, SEARCH("-",I2,SEARCH("-",I2)+1) - SEARCH("-",I2) - 1)

因此,從名稱“Goapta-Saaririka-Aaasshok”開始,我可以提取“Saaririka”,但如果我只有名字和中間名而不是姓氏,我會遇到問題。 上述公式無法從“Basrsaaggade-Aamimit”中提取中間名

請協助,即使沒有姓氏,我該如何提取中間名。

測試破折號的數量。 對於A列中的數據:

=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))=2,MID(A1, SEARCH("-",A1) + 1, SEARCH("-",A1,SEARCH("-",A1)+1) - SEARCH("-",A1) - 1),MID(A1,FIND("-",A1)+1,99))

在此處輸入圖像描述

如果有 2 個破折號,取中間的字符串
如果有 1 個破折號,則取最后一個字符串。

(使用Excel 365可以縮短很多)

您可以嘗試在每個連字符上拆分字符串:

在此處輸入圖像描述

B1中的公式:

=FILTERXML("<t><s>"&SUBSTITUTE(A1,"-","</s><s>")&"</s></t>","//s[2]")
  • //s[2] - 總是從我們的結果數組中返回第二個節點。

無需測試破折號的數量。

假設您的數據從 A1 開始。 把它放在 B1 中: =TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",255)),256,256))

拖累。

它將每個破折號替換為 255 個空格,然后從 256 個字符中刪除 256 個字符,以保證包含第二個元素,然后修剪掉多余的空格。

如果您希望使用 VBA 中的 UDF 執行此操作,則可以使用“-”作為分隔符將字符串拆分為數組並獲取第二個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM