如何提取字母數字字串中的最後 7 個數字值

如何提取字母數字字串中的最後 7 個數字值

我需要從 Excel 單元格中的字串中提取最後 7 個數值(不是字元)。字串包含一個檔案名稱(可以是字母、數字和破折號的混合),然後是需要移動到另一列的 7 個數字。

例如Johnson Set1- 0 0 1 14 9 54 0

數值從 0 到 999 不等,因此不可能只提取最後 7 個字元。

答案1

因此,您可以使用一些技巧來獲得您想要的東西。我將盡力在這裡解釋它們,然後給你一個公式,使用這些技巧來滿足你想要的。

關鍵是找到數字清單開始之前的空格。如果您的範例足夠通用,則該空格將始終是右側的第七個空格。問題是,從右邊算起的第七個可能是從左邊算起的任意數字空格,因為聽起來好像沒有關於檔案名稱有一定數量空格的規則。此SUBSTITUTE函數允許您指定要替換的字串實例(從左側開始)。

為了獲得從右邊算起的第七個空格,我們必須將其轉換為從左邊算起的空格。為此,我們需要知道整個字串中的空格數。一旦我們有了它,這只是一個減法的問題。

要查找字串中空格的總數,有一個技巧可以使用SUBSTITUTELEN函數。這個想法是將字串中的所有空格替換為空,然後將輸出的長度與原始字串的長度進行比較。差別當然在於原始字串中空格的數量。因此,對於 中的字串A1,以下將傳回空格數:

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))

因此,您想要的左側空格數實例的左側總是會多出 6 個空格。

=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6

現在,下一個問題是只SUBSTITUTE允許您指定要變更的實例編號。FIND,這對於提取數字來說是最方便的,但沒有此功能。訣竅是使用SUBSTITUTE產生一個字串,讓您可以FIND根據需要使用。如果將右側第 7 個空格替換為字串中其他任何位置都沒有出現的字串,則您將需要搜尋唯一的子字串。因此,例如您可以使用以下命令將所需的空間替換為“REPLACE!ME”:

=SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6)

現在,您只需在字串中找到“REPLACE!ME”的索引並將所有內容返回到其右側。這可以透過RIGHTLEN、 和函數來完成FIND。最終的功能有點重複,但它完成了工作。

 =RIGHT(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6),LEN(SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-FIND("REPLACE!ME",SUBSTITUTE(A1," ","REPLACE!ME",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-6))-LEN("REPLACE!ME")+1)

相關內容