Excel 教學 – 按特定位置提取文本或數字
在許多情況下,您可能只需要從句子或單元格中的字串中提取有用的文字,例如從地址中提取省份,從句子中提取郵箱地址,從對話中提取快遞單號等。本教程將提取範圍縮小到單元格中的特定位置,並收集不同的方法來幫助在 Excel 中按特定位置提取單元格中的文本或數字。
目錄:[ 隱藏 ]
按位置提取文本
本節收集了常見的區域,從中可以從單元格中提取文字,並提供相應的方法逐步處理。您可以瀏覽以獲取更多詳細資訊。
1. 從左邊或右邊提取字符數量
要從字串的左側或右側提取字符數量,您可以嘗試以下方法之一。
假設您在下圖所示的列B中有一個字串列表,要從每個字串中提取前2個字符和後2個字符,您可以應用以下公式。
提取文本字串中的前 N 個字符
LEFT 函數可以幫助輕鬆從 Excel 中的文本字串提取前 N 個字符。
通用公式
=LEFT(text_string,[num_chars])
參數
現在,您可以應用此公式從列B中的單元格提取前2個字符。
1. 選擇一個空白單元格,複製或輸入以下公式,然後按下「Enter」鍵以獲得第一個結果。選擇結果單元格並向下拖動其自動填充柄以將公式應用到其他單元格。
=LEFT(B5,2)
現在您已經提取了指定區域中每個單元格的前2 個字符。
從字串中提取後 N 個字符
在這裡,我們應用RIGHT函數從Excel中的文字字串中提取後N個字符。
通用公式
=RIGHT(text_string,[num_chars])
參數
選擇一個空白單元格,複製或輸入下面的公式,然後按下 "Enter" 鍵以獲得結果。接著選擇此結果單元格,並向下拖曳其自動填充柄以獲得其他結果。
=RIGHT(B5,2)
雖然上述公式很簡單,但要從長列表的文本字串中提取前或後 N 個字符,仍需從上往下拖動自動填充手柄,這可能會稍微耗時。在此,我們推薦使用 "Kutools for Excel" 的 "提取文本" 工具,以批量提取列表中的文本字串的前或後 N 個字符。
1. 預先選擇您要從中提取文本的字串列表,然後點擊 "Kutools" > "文字" > "提取文本"。
2. 在彈出的「提取文本」對話框中,您需要按以下方式進行配置。
備註:若要在文字字串變更時使結果保持動態,您可以勾選「作為公式插入」方框。
3. 在接下來彈出的「提取文本」對話框中,選擇一個單元格以輸出提取的字符,然後點擊「確定」。
然後,從選取的單元格中批量提取前 N 個或後 N 個字符。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
2. 提取特定字符/單詞前或後的文本
要提取某個字符或單詞前後的文本,本節中的不同方案將滿足您的需求。
如下面的截圖所示,要從區域 B4:B10 中的每個單元格提取第一個分隔依據前或後的文本,您可以應用以下方法之一。
應用基於 LEFT 和 FIND 函數的公式可以幫助從單元格中提取第一個分隔符之前的文本。您可以按照以下步驟完成此操作。
通用公式
=LEFT(text_string,FIND("分隔依據",text_string,1)-1)
參數輸入
選擇一個空白單元格,將以下公式複製或輸入到其中,然後按下 "Enter" 鍵以獲取第一個結果。選擇第一個結果單元格,然後向下拖動其自動填充柄,以獲取其他單元格中第一個分隔依據之前的文字。
=LEFT(B5,FIND("-",B5,1)-1)
以下公式有助於從 Excel 中的單元格提取第一個分隔依據後的文本。
通用公式
=MID(字串,FIND("分隔依據",字串)+1,LEN(字串))
參數
=MID(B5,FIND("-",B5)+1,LEN(B5))
在這裡,我們強烈推薦使用 "Kutools for Excel" 的 "提取文本" 功能。利用此功能,您可以輕鬆地從一個區域的多個單元格中批量提取第一個分隔符之前或之後的文本。
1. 選擇您想要提取文本的單元格區域,然後點擊 "Kutools" > "文字" > "提取文本"。
2. 在「提取文本」對話框中,您需要進行以下配置。
備註:若要在文字字串變更時使結果具有動態性,您可以勾選作為公式插入方塊。
3. 然後會彈出另一個 "提取文本" 對話框,選擇一個單元格來輸出結果,然後點擊 "確定"。
然後,第一個分隔依據前或後的文字會立即從選取單元格中提取。
要了解更多有關此功能的信息,請訪問:快速提取 Excel 單元格中的特定文本。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
在上述步驟中,我們已經學習了從單元格中提取第一個分隔依據前或後的文字的方法。如下圖所示,本節將向您展示兩個公式,用於從單元格中提取最後一個分隔依據前或後的文字。您可以按照以下步驟完成操作。
要從單元格中提取最後一個分隔依據之前的文本,可以在LEFT函數中使用SEARCH、LEN和SUBSTITUTE函數。
通用公式
=LEFT(text_string,SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter",""))))-1)
參數
選擇一個單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖曳其自動填充柄,以從同一列中的其他字串中提取文本。
=LEFT(B5,SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-",""))))-1)
在從單元格中提取最後一個分隔依據之前的文本後,您可以應用以下公式來提取最後一個分隔依據之後的文本。
通用公式
=RIGHT(text_string,LEN(text_string)-SEARCH("#",SUBSTITUTE(text_string,"分隔依據","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"分隔依據","")))))
參數
選擇一個單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖動其自動填充柄,以從同一列中的其他字串中提取文本。
=RIGHT(B5,LEN(B5)-SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-","")))))
請看下面的例子,在區域B4:B10中有一個文字字串列表,要從每個單元格中提取第三個字符之後的文字,可以應用基於MID函數和LEN函數的公式。
通用公式
=MID(text_string,nth_char+1,LEN(text_string))
參數
選擇一個空白單元格,將下面的公式複製或輸入到其中,然後按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖動其自動填充柄以獲得其他結果。
=MID(B5,3+1,LEN(B5))
假設您有一個如下面截圖所示的文字字串列表,並希望從文字字串中提取第N個單詞,本節提供三種方法供您完成此操作。
您可以結合 TRIM、MID、SUBSTITUTE、REPT 和 LEN 函數來提取儲存格中文字串中的第N個單詞。
通用公式
=TRIM(MID(SUBSTITUTE(text_string," ",REPT(" ",LEN((text_string))), (N-1)*LEN((text_string)+1, LEN((text_string)))
參數
在這種情況下,區域 B5:B10 包含文本字串,D5:D10 包含代表第N個單詞的數字,讓我們應用此公式從文本字串中提取第N個單詞。
選擇一個空白單元格,將以下公式複製或輸入到其中,然後按下「Enter」鍵以獲得第一個結果。選擇此結果單元格並向下拖動其自動填充柄以獲得其他單元格的第N個單詞。
=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (D5-1)*LEN(B5)+1, LEN(B5)))
備註:您可以直接在公式中輸入第 N 個數字,如下所示。
=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (2-1)*LEN(B5)+1, LEN(B5)))
除了上述公式外,您還可以應用自定義函數從 Excel 的單元格中提取第N個單詞。
1. 按下 "Alt" + "F11" 鍵以開啟 "Microsoft Visual Basic for Applications" 視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將以下 VBA 複製到程式碼視窗中。
VBA代碼:提取儲存格中第N個單詞的字串
Function ExtractTheNthWord(Source As String, Position As Integer)
'Update by Extendoffice 20211202
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
FindWord = ""
Else
FindWord = arr(Position - 1)
End If
End Function
3. 按下 "Alt" + "Q" 鍵以關閉 "Microsoft Visual Basic for Applications" 視窗。
4. 返回到包含您想要提取第N個單詞的文字字串的工作表。選擇一個空白單元格,將以下公式複製或輸入到其中,然後按 "Enter" 鍵以獲取第N個單詞。
=FindWord(B5,D5)
或
=FindWord(B5,2)
備註:在公式中,D5 是包含代表第 N 個單詞的數字的單元格。或者,您可以直接將單元格引用替換為數字。
5. 選擇結果單元格並向下拖動其自動填充柄,以從其他單元格的文本字串中提取第N個單詞。
如果您不想手動應用上述公式或使用者定義函數,我們推薦使用 Kutools for Excel 的「提取儲存格中第N個單詞」功能。使用此功能,您只需幾次點擊即可輕鬆從單元格中的文字字串中提取第N個單詞。
1. 選擇一個單元格來放置結果,然後點擊 "Kutools" > "公式助手" > "文本" > "提取" "提取儲存格中第N個單詞"。請參見截圖:
2. 在「公式助手」對話框中,您需要按以下方式進行配置。
3. 然後從單元格 B5 的文本字串中提取第 N 個(第二個)單詞,您可以看到同時創建了一個公式。選擇此結果單元格並向下拖動其自動填充手柄,以從其他文本字串中獲取第 N 個單詞。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
假設您有一個如下面截圖所示的文本字串列表。要提取第二次出現的空格之前或之後的文本,本節提供了兩個公式來幫助您完成。
您可以使用 LEFT 函數結合 SUBSTITUTE 和 FIND 函數,從 Excel 單元格中提取分隔符第 N 次出現前的文本。
通用公式
=LEFT(SUBSTITUTE(text_string,"delimiter",CHAR(9),n),FIND(CHAR(9),SUBSTITUTE(text_string,"delimiter",CHAR(9),n),1)-1)
參數
選擇一個單元格,複製或輸入下面的公式,然後按 "Enter" 鍵以獲取結果。選擇此結果單元格並向下拖動自動填充手柄以獲取列表中的其他結果。
=LEFT(SUBSTITUTE(B5," ",CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5," ",CHAR(9),2),1)-1)
備註:在公式中,B5 是包含您想要提取文本的字串的單元格;“ ”這裡代表一個空格,數字2代表空格的第二次出現。您可以根據需要更改它們。
要在分隔依據出現第N次後提取文本,您可以使用 SUBSTITUTE、LEN 和 FIND 函數搭配 RIGHT 函數來應用。
通用公式
=RIGHT(SUBSTITUTE(text_string, "delimiter", CHAR(9), n), LEN(text_string)- FIND(CHAR(9), SUBSTITUTE(text_string, "delimiter", CHAR(9), n),1) +1)
參數
現在您可以應用此公式,以提取區域 B5:B10 中每個單元格中第二次出現空格後的文本,如下所示。
選擇一個單元格,輸入以下公式並按下 "Enter" 鍵以獲得結果。選擇此結果單元格並向下拖動自動填充柄以獲得其他結果。
=RIGHT(SUBSTITUTE(B5, " ", CHAR(9), 2), LEN(B5)- FIND(CHAR(9), SUBSTITUTE(B5, " ", CHAR(9), 2), 1) + 1)
假設您在列 B 中有一個訂單列表,並且您希望從每個單元格中僅提取日期部分和產品編號部分。您可以使用以下 Excel公式來完成此操作。
如上方截圖所示,日期部分位於單元格內第一個換行符之前。本節將演示如何使用 LEFT 函數和 SEARCH 函數來幫助您提取單元格內第一個換行符之前的文本。
通用公式
=LEFT(單元格, SEARCH(CHAR(10), 單元格)-1)
參數
選擇一個空白單元格,將下面的公式複製或輸入到其中,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
=LEFT(B5, SEARCH(CHAR(10), B5)-1)
然後,您可以看到範圍 B5:B8 中每個單元格的第一行換行符之前的文字已被提取,如下圖所示。
備註:在公式中,CHAR(10)代表 Windows 上的換行符。
在上一步中,我們討論了如何提取單元格中第一個換行符之前的文本。本部分將指導您如何使用不同的公式提取單元格中最後一個換行符之後的文本。
通用公式
=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(" ",200)),200))
參數
選擇一個空白單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將公式應用到其他單元格。
=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(" ",200)),200))
然後,列表中每個單元格的產品編號部分將如上圖所示被提取出來。
備註:在公式中,CHAR(10)代表 Windows 上的換行符。
在前面的部分中,我們已經學習了如何在字符或分隔依據之前或之後提取文本。那麼,如何在整個單詞之前或之後提取文本呢?本節將介紹三種方法來幫助您完成此任務。
以下公式可幫助您在 Excel 中提取單元格內某個單詞之前的文本。
通用公式
=IFERROR(LEFT(單元格,FIND(單詞,單元格)-1),單元格)
參數
選擇一個空白單元格,輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
在此範例中,我們將提取所有在單詞“Excel”之前的文本,因此我們直接在公式中輸入該單詞並用雙引號括起來。或者,您可以引用包含單詞“Excel”的單元格。
=IFERROR(LEFT(B5,FIND("Excel",B5)-1),B5)
備註:
要提取某個單詞後的文本,您可以應用以下公式來完成。
通用公式
=TRIM(MID(單元格,SEARCH(單詞,單元格)+LEN(單詞),255))
參數
選擇一個單元格,輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
=TRIM(MID(B5,SEARCH("Excel",B5)+LEN("Excel"),255))
然後,您可以看到每個單元格中“Excel”這個詞後的所有文本都已提取,如下圖所示。
備註:
如果您覺得使用公式可能會帶來很多不便,我們強烈推薦使用 "Kutools for Excel" 的 "提取文本" 功能。此功能可幫助您在 Excel 中自動化提取任務,只需幾次點擊即可完成。
1. 點擊 "Kutools" > "Text" > "提取文本"以啟用此功能。
2. 在「提取文本」對話框中,進行以下設定。

備註:如果您想創建動態結果,請勾選「作為公式插入」選項。然後,當區域中的數據發生變化時,結果將自動更新。
3. 然後會彈出一個 "提取文本" 對話框,您需要選擇一個單元格來輸出結果,然後點擊 "OK" 按鈕。
然後,選取區域中每個單元格內某個單詞前或後的文本會立即被提取。
備註:此功能區分大小寫。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
3. 提取字符/單詞之間的內容
如果您想提取特定字符或單詞之間的文本,請嘗試以下方法。
要提取兩個字符之間的文本,這些字符可以相同或不同。本節提供了幾種方法,您可以選擇適合您需求的方法。
如下面的截圖所示,列 B 中有一個文字字串列表,您希望從區域中的每個單元格中提取字符 “/”之間的數字部分,以下公式可以幫助您。
選擇一個空白單元格,複製或輸入以下公式,然後按 "Enter" 鍵以獲得結果。選擇結果單元格,然後向下拖動自動填充手柄以獲得列表中其他單元格的結果。
=SUBSTITUTE(MID(SUBSTITUTE("/" & B5&REPT(" ",6),"/",REPT(",",255)),2*255,255),",","")
然後,從區域中的每個單元格提取兩個相同字符“/”之間的文本。請參見截圖:
備註:
3.1.2 使用公式提取兩個不同字符之間的文本
在學習如何從單元格中提取兩個相同字符之間的文本後,這裡我們將展示一個公式來提取兩個不同字符之間的文本。如下面的截圖所示,要從列B中的每個單元格中提取“<”和“>”之間的郵箱地址,您可以按以下步驟進行。
通用公式
=MID(LEFT(cel,FIND("end_char",cell)-1),FIND("start_char",cell)+1,LEN(cell))
參數
選擇一個空白單元格,複製或輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
=MID(LEFT(B5,FIND(">",B5)-1),FIND("<",B5)+1,LEN(B5))
您可以看到,如上面的截圖所示,只有指定字符之間的文字被提取出來。
在此,我們強烈推薦使用「Kutools for Excel」的「提取指定文本間的字串」功能,以幫助您輕鬆提取 Excel 單元格中兩個相同或不同字符之間的文本。
1. 選擇一個空白單元格以輸出結果,然後點擊 "Kutools" > "公式助手" > "公式助手"。
2. 在「公式助手」對話框中,進行以下選項設置。
3. 然後,只提取儲存格 B5 中“<”和“>”之間的文字。同時,公式已被創建,您可以選擇此結果單元格,然後向下拖動其自動填充手柄以從同一列表中的其他單元格中提取文字。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
如果您想在提取後保留兩個字符,請嘗試在 Kutools for Excel 的提取文本功能中應用一個規則。
1. 點擊 "Kutools" > "文字" > "提取文本"。
2. 在「提取文本」對話框中,進行以下選項設置。


3.另一個「提取文本」對話框彈出。請選擇一個單元格以輸出結果,然後點擊「確定」按鈕。
然後,從選定區域中的每個單元格批量提取指定字符之間的文本(包括字符)。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
除了提取兩個字符之間的文本外,您可能還需要提取兩個單詞之間的文本。例如,從列B中的每個單元格中提取兩個單詞“KTE”和“feature”之間的所有文本字串,如下圖所示。您可以嘗試以下方法之一來完成此操作。
您可以使用基於中函數和搜尋函數的公式來提取儲存格中兩個單詞之間的所有字串。
通用公式
=MID(單元格,SEARCH("start_word",單元格)+3,SEARCH("end_word",單元格)-SEARCH("start_word",單元格)-4)
參數
選擇一個空白單元格,複製或輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
=MID(B5,SEARCH("KTE",B5)+3,SEARCH("feature",B5)-SEARCH("KTE",B5)-4)
備註:在公式中,數字3表示單詞「KTE」的字符長度;數字4表示單詞「KTE」的字符長度加1。
您可以看到,所有位於指定兩個單詞之間的字串已從列B中的每個單元格中提取出來。
對許多 Excel 使用者來說,公式可能難以記住和處理。在這裡,使用 "Kutools for Excel" 的 "提取指定文本間的字串" 功能,您只需幾次點擊即可輕鬆提取兩個單詞之間的文本。
1. 選擇一個單元格以輸出結果,然後點擊 "Kutools" > "公式助手" > "公式助手"。
2. 在「公式助手」對話框中,您需要按以下方式進行配置。
3. 然後,儲存格 B5 中兩個單詞 “KTE” 和 “feature”之間的所有字串都被提取出來。同時,已創建一個公式,您可以選擇此結果單元格,然後向下拖動其自動填充柄,以從同一列表中的其他單元格中提取文本。
Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取
按位置提取數字
對於一個字母數字字串列表,可能有三種情況:
- 數字位於文字的開頭;
- 數字位於文字的結尾;
- 數字可以在文本中的任何位置。
在本節中,我們將提供不同的方法來提取上述每種情況中的數字。
1 從字串的左邊提取數字
本部分將介紹一個公式,幫助您提取儲存格中文字前出現的數字。
通用公式
=LEFT(單元格, MATCH(FALSE, ISNUMBER(MID(單元格, ROW(INDIRECT("1:"&LEN(單元格)+1)),1) *1),0) -1)
參數
備註:
選擇一個空白單元格,輸入以下公式,然後按 "Ctrl" + "Shift" + "Enter" 或 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以獲得其他單元格的數字。
=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5)+1)), 1) *1), 0) -1)
備註:
2 從字串右側提取數字
如下面的截圖所示,要提取單元格中出現在文字後的數字,請嘗試以下公式。
通用公式
=RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))),1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))),0)))
參數
備註:
選擇一個空白單元格,輸入以下公式,然後按 "Ctrl" + "Shift" + "Enter" 或 "Enter" 鍵以獲取結果。選擇此結果單元格,然後向下拖動其自動填充柄以獲取其他單元格的數字。
=RIGHT(B5, LEN(B5) - MAX(IF(ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(B5))), 0)))
備註:
3. 從文字字串中的任何位置提取所有數字
上述方法有助於僅從文字字串的左側或右側提取數字。如果您想從文字字串中的任何位置提取所有數字,我們在此提供三種方法供您完成。
您可以應用以下公式來從 Excel 中的文字字串中提取所有數字。
1. 選擇一個空白單元格,複製或輸入以下公式,然後按「Enter」鍵以從單元格B5中獲取所有數字。
=SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5, ROW(INDIRECT("1:"&LEN(B5))), 1)) * ROW(INDIRECT("1:"&LEN(B5))), 0), ROW(INDIRECT("1:"&LEN(B5))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(B5)))/10)
2. 選擇結果單元格,然後向下拖動其自動填充柄以獲得其他單元格的所有數字。
上述公式對許多 Excel 使用者來說過於冗長和複雜。事實上,您可以運行 VBA 腳本來自動化 Excel 中的任務。您可以按照以下步驟進行。
1. 按下 "Alt" + "F11" 鍵以開啟 "Microsoft Visual Basic for Applications" 視窗。
2. 在打開的 "Microsoft Visual Basic for Applications" 視窗中,點擊 "插入" > "模組"。然後將下面的 VBA 複製到模組代碼視窗中。
VBA代碼:從文本字串中提取所有數字
Sub ExtrNumbersFromRange()
'Updated by Extendoffice 20220106
Dim xRg As Range
Dim xDRg As Range
Dim xRRg As Range
Dim nCellLength As Integer
Dim xNumber As Integer
Dim strNumber As String
Dim xTitleId As String
Dim xI As Integer
xTitleId = "KutoolsforExcel"
Set xDRg = Application.InputBox("Please select text strings:", xTitleId, "", Type:=8)
If TypeName(xDRg) = "Nothing" Then Exit Sub
Set xRRg = Application.InputBox("Please select output cell:", xTitleId, "", Type:=8)
If TypeName(xRRg) = "Nothing" Then Exit Sub
xI = 0
strNumber = ""
For Each xRg In xDRg
xI = xI + 1
nCellLength = Len(xRg)
For xNumber = 1 To nCellLength
If IsNumeric(Mid(xRg, xNumber, 1)) Then
strNumber = strNumber & Mid(xRg, xNumber, 1)
End If
Next xNumber
xRRg.Item(xI) = strNumber
strNumber = ""
Next xRg
End Sub
3. 按下 "F5" 鍵以執行程式碼。在開啟的 "KutoolsforExcel" 對話框中,選擇您想要從每個單元格中提取所有數字的區域,然後點擊 "OK" 按鈕。
4. 然後會彈出另一個 "KutoolsforExcel" 對話框。在此對話框中,選擇一個目標單元格並點擊 "OK"。
然後所有數字都會批量從選定區域中的每個單元格中提取出來。
4. 提取指定文本後的數字
如下面的截圖所示,若要提取特定文本“No.”後的任何數字,本節提供了兩種方法來幫助您完成。
您可以應用以下公式來提取 Excel 中單元格中特定文本後的數字。
通用公式:
=LOOKUP(10^6,1*MID(單元格,MIN(FIND({0,1,2,3,4,5,6,7,8,9},單元格&"0123456789",FIND("文字"," "&單元格&" "))),{2,3,4,5,6}))
參數
選擇一個空白單元格,複製或輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。
=LOOKUP(10^6,1*MID(B5,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B5&"0123456789",FIND("No."," "&B5&" "))),{2,3,4,5,6}))
備註:
以下用戶自定義函數也可以幫助提取單元格中特定文本後的數字。請按以下步驟操作。
1. 按下 "Alt" + "F11" 鍵以開啟 "Microsoft Visual Basic for Applications" 視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,然後將以下 VBA 程式碼複製到模組程式碼視窗中。
VBA代碼:提取單元格中特定文本後的數字
Function GetNumberAfterTheChar(Rng As Range, Char As String)
'Updated by Extendoffice 20220106
Dim xValue As String
Dim xRntString As String
Dim xStart As Integer
Dim xC
xValue = Rng.Text
xStart = InStr(1, xValue, Char, vbTextCompare)
If IsEmpty(xStart) Then
GetNumberAfterTheChar = ""
Exit Function
End If
If xStart < 1 Then
GetNumberAfterTheChar = ""
Exit Function
End If
xStart = xStart - 1 + Len(Char)
If xStart < 1 Then
GetNumberAfterTheChar = ""
Exit Function
End If
xValue = Mid(xValue, xStart + 1)
xRntString = ""
For xI = 1 To Len(xValue)
xC = Mid(xValue, xI, 1)
Select Case Asc(xC)
Case 48 To 57
xRntString = xRntString & xC
Case Else
Exit For
End Select
Next
GetNumberAfterTheChar = xRntString
End Function
3. 按下 "Alt" + "Q" 鍵以關閉 "Microsoft Visual Basic for Applications" 視窗。
4. 選擇一個單元格,輸入以下公式並按下 "Enter" 鍵。選擇此結果單元格,然後向下拖動其自動填充手柄,以將此公式應用於其他單元格。
=GetNumberAfterTheChar(B5,"No. ")
備註:
相關文章:
Excel 教程:拆分文本、數字和日期單元格(分隔為多列)
本教程分為三個部分:分割文本單元格、分割數字單元格和分割日期單元格。每個部分提供不同的示例,幫助您了解如何在遇到相同問題時處理分割工作。
點擊了解更多...
在 Excel 中將文本和數字添加到單元格的指定位置
在 Excel 中,向單元格添加文本或數字是一項非常常見的工作。例如在名稱之間添加空格,向單元格添加前綴或後綴,向社會安全號碼添加破折號。在本教程中,列出了 Excel 中幾乎所有的添加方案,並為您提供了相應的方法。
點擊了解更多...
Excel 刪除特定字符、單詞、數字從字串中
假設您有一長串包含字符、數字或其他特定符號的文本字串。在某些情況下,您可能需要根據位置刪除一些字符,例如從文本字串的右邊、左邊或中間,或者從字串列表中刪除一些不需要的字符或數字。逐一尋找解決方案會讓您頭痛,本教程收集了在 Excel 中刪除字符、單詞或數字的各種方法。
點擊了解更多...
最佳辦公效率工具
🤖 | Kutools AI 助手:基於智能執行方式革新數據分析:智能執行 | 生成代碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 函數… |
熱門功能:查找、標記重複值或識別重複項 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
高級 LOOKUP: 多條件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高級下拉列表:快速創建下拉列表 | 依賴下拉列表 | 多選下拉列表 .... | |
列管理器: 添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較區域和列 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文本工具(添加文本、刪除特定字符、...) | 50+ 圖表 類型(甘特圖、...) | 40+ 實用 公式(基於生日計算年齡、...) | 19 個插入工具(插入QR碼、根據路徑插入圖片、...) | 12 個轉換工具(金額轉大寫、匯率轉換、...) | 7 個合併與分割工具(高級合併行、分割儲存格、...) | ... 還有更多 |
使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。 點擊這裡獲取您最需要的功能...
Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!