Skip to main content

Excel 教學 – 按特定位置提取文本或數字

Author: Siluvia Last Modified: 2025-05-14

在許多情況下,您可能只需要從句子或單元格中的字串中提取有用的文字,例如從地址中提取省份,從句子中提取郵箱地址,從對話中提取快遞單號等。本教程將提取範圍縮小到單元格中的特定位置,並收集不同的方法來幫助在 Excel 中按特定位置提取單元格中的文本或數字。

 目錄:[ 隱藏 ]

(點擊下方或右側目錄中的任何標題以導航至相應章節。)

按位置提取文本

本節收集了常見的區域,從中可以從單元格中提取文字,並提供相應的方法逐步處理。您可以瀏覽以獲取更多詳細資訊。

1. 從左邊或右邊提取字符數量

要從字串的左側或右側提取字符數量,您可以嘗試以下方法之一。

1.1 使用公式提取前或後 N 個字符

假設您在下圖所示的列B中有一個字串列表,要從每個字串中提取前2個字符和後2個字符,您可以應用以下公式。

提取文本字串中的前 N 個字符

LEFT 函數可以幫助輕鬆從 Excel 中的文本字串提取前 N 個字符。

通用公式

=LEFT(text_string,[num_chars])

參數

"Text_string": 包含您想要提取的字符的文本字串。它可以是一個儲存格引用或用雙引號括起來的實際文本字串;
"Num_chars": 指定您想要提取的字符數量。
Num_chars 必須大於或等於零;
如果指定的 Num_chars 大於文字字串的長度,則返回整個文字;
如果省略了 Num_chars,則假定為1。

現在,您可以應用此公式從列B中的單元格提取前2個字符。

1. 選擇一個空白單元格,複製或輸入以下公式,然後按下「Enter」鍵以獲得第一個結果。選擇結果單元格並向下拖動其自動填充柄以將公式應用到其他單元格。

=LEFT(B5,2)

現在您已經提取了指定區域中每個單元格的前2 個字符。

從字串中提取後 N 個字符

在這裡,我們應用RIGHT函數從Excel中的文字字串中提取後N個字符。

通用公式

=RIGHT(text_string,[num_chars])

參數

"Text_string": 包含您想要提取字符的字串。它可以是一個儲存格引用或用雙引號括起來的實際字串;
"Num_chars": 指定要提取的字符數量。
"Num_chars" 必須大於或等於零;
如果指定的「Num_chars」大於文本字串的長度,則返回整個文本;
如果省略了 "Num_chars",則假設為1。

選擇一個空白單元格,複製或輸入下面的公式,然後按下 "Enter" 鍵以獲得結果。接著選擇此結果單元格,並向下拖曳其自動填充柄以獲得其他結果。

=RIGHT(B5,2)

1.2 使用強大工具提取前或後 N 個字符

雖然上述公式很簡單,但要從長列表的文本字串中提取前或後 N 個字符,仍需從上往下拖動自動填充手柄,這可能會稍微耗時。在此,我們推薦使用 "Kutools for Excel" 的 "提取文本" 工具,以批量提取列表中的文本字串的前或後 N 個字符。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 預先選擇您要從中提取文本的字串列表,然後點擊 "Kutools" > "文字" > "提取文本"。

2. 在彈出的「提取文本」對話框中,您需要按以下方式進行配置。

2.1) 確保您停留在「按位置提取」標籤中;
2.2) 在「區域」框中,會顯示選定的區域,您可以根據需要更改為其他區域;
2.3) 在「選項」部分:
如果您想提取前 N 個字符,請選擇"前 N 個字符"單選按鈕,然後在文本框中指定您要提取的字符數。在這種情況下,我輸入數字2;
如果您想提取後 N 個字符,請選擇「後 N 個字符」選項,然後在文本框中指定您要提取的字符數。在這個例子中,我想從文本字串中提取後2 個字符,所以我在文本框中輸入數字2。
2.4) 點擊“確定”。請參見截圖:

備註:若要在文字字串變更時使結果保持動態,您可以勾選「作為公式插入」方框。

3. 在接下來彈出的「提取文本」對話框中,選擇一個單元格以輸出提取的字符,然後點擊「確定」。

然後,從選取的單元格中批量提取前 N 個或後 N 個字符。

點擊以了解更多關於此功能的資訊。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取


2. 提取特定字符/單詞前或後的文本

要提取某個字符或單詞前後的文本,本節中的不同方案將滿足您的需求。

2.1 提取第一個分隔依據(字符)前或後的文本

如下面的截圖所示,要從區域 B4:B10 中的每個單元格提取第一個分隔依據前或後的文本,您可以應用以下方法之一。

2.1.1 使用公式提取第一個分隔依據前的文本

應用基於 LEFT 和 FIND 函數的公式可以幫助從單元格中提取第一個分隔符之前的文本。您可以按照以下步驟完成此操作。

通用公式

=LEFT(text_string,FIND("分隔依據",text_string,1)-1)

參數輸入

"Text_string": 您想要從中提取子字串的文本字串。它可以是一個儲存格引用或用雙引號括起來的實際文本字串;
"分隔依據": 第一個分隔依據,用於定義將從單元格中提取的文本。

選擇一個空白單元格,將以下公式複製或輸入到其中,然後按下 "Enter" 鍵以獲取第一個結果。選擇第一個結果單元格,然後向下拖動其自動填充柄,以獲取其他單元格中第一個分隔依據之前的文字。

=LEFT(B5,FIND("-",B5,1)-1)

2.1.2 使用公式提取第一個分隔依據後的文本

以下公式有助於從 Excel 中的單元格提取第一個分隔依據後的文本。

通用公式

=MID(字串,FIND("分隔依據",字串)+1,LEN(字串))

參數

"Text_string": 您想要提取子字串的文字字串。它可以是一個儲存格引用或是用雙引號括起來的實際文字字串;
"分隔依據:" 第一個分隔符定義了將從單元格中提取哪些文本。
選擇一個空白單元格,將下面的公式複製或輸入到其中,然後按下「Enter」鍵以獲得第一個結果。選擇第一個結果單元格,並向下拖動其自動填充柄以獲得其他結果。
=MID(B5,FIND("-",B5)+1,LEN(B5))

2.1.3 使用出色的工具提取第一個分隔依據前或後的文本

在這裡,我們強烈推薦使用 "Kutools for Excel" 的 "提取文本" 功能。利用此功能,您可以輕鬆地從一個區域的多個單元格中批量提取第一個分隔符之前或之後的文本。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇您想要提取文本的單元格區域,然後點擊 "Kutools" > "文字" > "提取文本"。

2. 在「提取文本」對話框中,您需要進行以下配置。

2.1) 保持在「按位置提取」標籤中;
2.2) 在「區域」框中,會顯示選定的區域,您可以根據需要進行更改;
2.3) 在「選項」部分:
要提取第一個分隔依據前的文本,請選擇「文字前」選項,然後在文本框中輸入第一個分隔依據;
要提取第一個分隔依據後的文本,請選擇“文字後”單選按鈕,然後在文本框中輸入第一個分隔依據。
2.4) 點擊 "確定"。

備註:若要在文字字串變更時使結果具有動態性,您可以勾選作為公式插入方塊。

3. 然後會彈出另一個 "提取文本" 對話框,選擇一個單元格來輸出結果,然後點擊 "確定"。

然後,第一個分隔依據前或後的文字會立即從選取單元格中提取。

要了解更多有關此功能的信息,請訪問:快速提取 Excel 單元格中的特定文本

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

2.2 提取最後一個分隔依據(字符)前或後的文本

在上述步驟中,我們已經學習了從單元格中提取第一個分隔依據前或後的文字的方法。如下圖所示,本節將向您展示兩個公式,用於從單元格中提取最後一個分隔依據前或後的文字。您可以按照以下步驟完成操作。

2.2.1 使用公式提取最後一個分隔依據前的文本

要從單元格中提取最後一個分隔依據之前的文本,可以在LEFT函數中使用SEARCH、LEN和SUBSTITUTE函數。

通用公式

=LEFT(text_string,SEARCH("#",SUBSTITUTE(text_string,"delimiter","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"delimiter",""))))-1)

參數

"Text_string": 您想要從中提取子字串的文本字串。它可以是一個儲存格引用或用雙引號括起來的實際文本字串;
"分隔依據:" 定義將從單元格中提取哪個文本的最後一個分隔依據。

選擇一個單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖曳其自動填充柄,以從同一列中的其他字串中提取文本。

=LEFT(B5,SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-",""))))-1)

2.2.2 使用公式提取最後一個分隔依據後的文本

在從單元格中提取最後一個分隔依據之前的文本後,您可以應用以下公式來提取最後一個分隔依據之後的文本。

通用公式

=RIGHT(text_string,LEN(text_string)-SEARCH("#",SUBSTITUTE(text_string,"分隔依據","#",LEN(text_string)-LEN(SUBSTITUTE(text_string,"分隔依據","")))))

參數

"Text_string": 您想要提取子字串的文本字串。它可以是一個儲存格引用或是用雙引號括起來的實際文本字串;
"分隔依據:" 定義將從單元格中提取哪段文字的最後一個分隔依據。

選擇一個單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖動其自動填充柄,以從同一列中的其他字串中提取文本。

=RIGHT(B5,LEN(B5)-SEARCH("#",SUBSTITUTE(B5,"-","#",LEN(B5)-LEN(SUBSTITUTE(B5,"-","")))))

2.3 提取指定字符後的文本

請看下面的例子,在區域B4:B10中有一個文字字串列表,要從每個單元格中提取第三個字符之後的文字,可以應用基於MID函數和LEN函數的公式。

A screenshot showing an example of extracting text after the nth character in Excel

通用公式

=MID(text_string,nth_char+1,LEN(text_string))

參數

"Text_string": 您想要提取子字串的文字字串。它可以是一個儲存格引用或是用雙引號括起來的實際文字字串;
"nth_char": 一個數字代表第N個字符,您將提取其後的文本。

選擇一個空白單元格,將下面的公式複製或輸入到其中,然後按下「Enter」鍵以獲得結果。選擇此結果單元格並向下拖動其自動填充柄以獲得其他結果。

=MID(B5,3+1,LEN(B5))

A screenshot showing the formula for extracting text after the nth character in Excel

2.4 提取文字字串中的第N個單詞

假設您有一個如下面截圖所示的文字字串列表,並希望從文字字串中提取第N個單詞,本節提供三種方法供您完成此操作。

2.4.1 使用公式提取第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)))

參數

"Text_string": 您想要提取第N個單詞的字串。它可以是單元格引用或用雙引號括起來的實際字串;
"N": 一個數字,表示您將從字串中提取的第N個單詞。

在這種情況下,區域 B5:B10 包含文本字串,D5:D10 包含代表第N個單詞的數字,讓我們應用此公式從文本字串中提取第N個單詞。

A screenshot showing the formula for extracting the nth word from a text string in Excel

選擇一個空白單元格,將以下公式複製或輸入到其中,然後按下「Enter」鍵以獲得第一個結果。選擇此結果單元格並向下拖動其自動填充柄以獲得其他單元格的第N個單詞。

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (D5-1)*LEN(B5)+1, LEN(B5)))

A screenshot showing the formula for extracting the nth word from a text string in Excel with AutoFill

備註:您可以直接在公式中輸入第 N 個數字,如下所示。

=TRIM(MID(SUBSTITUTE(B5," ",REPT(" ",LEN(B5))), (2-1)*LEN(B5)+1, LEN(B5)))

2.4.2 使用自定義函數提取第N個單詞

除了上述公式外,您還可以應用自定義函數從 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

A screenshot showing the Microsoft Visual Basic for Applications window with the VBA code for extracting the nth word from a text string

3. 按下 "Alt" + "Q" 鍵以關閉 "Microsoft Visual Basic for Applications" 視窗。

4. 返回到包含您想要提取第N個單詞的文字字串的工作表。選擇一個空白單元格,將以下公式複製或輸入到其中,然後按 "Enter" 鍵以獲取第N個單詞。

=FindWord(B5,D5)

=FindWord(B5,2)

備註:在公式中,D5 是包含代表第 N 個單詞的數字的單元格。或者,您可以直接將單元格引用替換為數字。

5. 選擇結果單元格並向下拖動其自動填充柄,以從其他單元格的文本字串中提取第N個單詞。

A screenshot of the result in Excel after using a user-defined function to extract the nth word from a text string

2.4.3 使用強大工具提取儲存格中第N個單詞

如果您不想手動應用上述公式或使用者定義函數,我們推薦使用 Kutools for Excel 的「提取儲存格中第N個單詞」功能。使用此功能,您只需幾次點擊即可輕鬆從單元格中的文字字串中提取第N個單詞。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇一個單元格來放置結果,然後點擊 "Kutools" > "公式助手" > "文本" > "提取" "提取儲存格中第N個單詞"。請參見截圖:

A screenshot of the Kutools for Excel interface showing the Extract the nth word in cell option under Formula Helper

2. 在「公式助手」對話框中,您需要按以下方式進行配置。

2.1) 在「選擇一個公式」框中,已選取「提取儲存格中第N個單詞」選項;
2.2) 在「單元格」框中,選擇包含您要提取第N個單詞的文本字串的單元格;
2.3) 在 "第N個" 框中,選擇一個包含第N個數字的單元格,或根據需要直接輸入一個數字;
2.4) 點擊「確定」。

A screenshot of the Formula Helper dialog box configured to extract the nth word from a text string

3. 然後從單元格 B5 的文本字串中提取第 N 個(第二個)單詞,您可以看到同時創建了一個公式。選擇此結果單元格並向下拖動其自動填充手柄,以從其他文本字串中獲取第 N 個單詞。

A screenshot showing the result after using Kutools to extract the nth word from a text string

點擊了解此功能的更多信息。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

2.5 提取分隔依據出現次數前或後的文本

假設您有一個如下面截圖所示的文本字串列表。要提取第二次出現的空格之前或之後的文本,本節提供了兩個公式來幫助您完成。

A screenshot showing a list of text strings in Excel with the second occurrence of a space for extraction

2.5.1 提取分隔依據第N次出現前的文本

您可以使用 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)

參數

"Text_string": 您想要提取文本的字串。它可以是一個儲存格引用或是用雙引號括起來的實際字串;
"N": 數字代表分隔依據的第N次出現,您將在其前提取文本。

選擇一個單元格,複製或輸入下面的公式,然後按 "Enter" 鍵以獲取結果。選擇此結果單元格並向下拖動自動填充手柄以獲取列表中的其他結果。

=LEFT(SUBSTITUTE(B5," ",CHAR(9),2),FIND(CHAR(9),SUBSTITUTE(B5," ",CHAR(9),2),1)-1)

A screenshot of the Excel formula used to extract text before the nth occurrence of a space

備註:在公式中,B5 是包含您想要提取文本的字串的單元格;“ ”這裡代表一個空格,數字2代表空格的第二次出現。您可以根據需要更改它們。

2.5.2 提取分隔依據第N次出現後的文本

要在分隔依據出現第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)

參數

"Text_string": 您想要提取文本的字串。它可以是一個儲存格引用或是用雙引號括起來的實際文本字串;
"N": 數字代表分隔依據的第N次出現,您將在其後提取文本。

現在您可以應用此公式,以提取區域 B5:B10 中每個單元格中第二次出現空格後的文本,如下所示。

選擇一個單元格,輸入以下公式並按下 "Enter" 鍵以獲得結果。選擇此結果單元格並向下拖動自動填充柄以獲得其他結果。

=RIGHT(SUBSTITUTE(B5, " ", CHAR(9), 2), LEN(B5)- FIND(CHAR(9), SUBSTITUTE(B5, " ", CHAR(9), 2), 1) + 1)

A screenshot of the Excel formula used to extract text after the nth occurrence of a space

2.6 提取換行符前或後的文本

假設您在列 B 中有一個訂單列表,並且您希望從每個單元格中僅提取日期部分和產品編號部分。您可以使用以下 Excel公式來完成此操作。

A screenshot showing an order list in Excel where text is to be extracted before or after a line break

2.6.1 使用公式提取第一個換行符之前的文本

如上方截圖所示,日期部分位於單元格內第一個換行符之前。本節將演示如何使用 LEFT 函數和 SEARCH 函數來幫助您提取單元格內第一個換行符之前的文本。

通用公式

=LEFT(單元格, SEARCH(CHAR(10), 單元格)-1)

參數

"單元格": 您想要提取文字的單元格,在第一個換行符之前。

選擇一個空白單元格,將下面的公式複製或輸入到其中,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。

=LEFT(B5, SEARCH(CHAR(10), B5)-1)

然後,您可以看到範圍 B5:B8 中每個單元格的第一行換行符之前的文字已被提取,如下圖所示。

A screenshot showing the result of extracting text before the first line break in Excel cells

備註:在公式中,CHAR(10)代表 Windows 上的換行符。

2.6.2 使用公式提取最後一個換行符後的文本

在上一步中,我們討論了如何提取單元格中第一個換行符之前的文本。本部分將指導您如何使用不同的公式提取單元格中最後一個換行符之後的文本。

通用公式

=TRIM(RIGHT(SUBSTITUTE(cell,CHAR(10),REPT(" ",200)),200))

參數

"單元格": 您希望從中提取文字的單元格,提取位置在第一個換行符之前。

選擇一個空白單元格,輸入以下公式並按下「Enter」鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將公式應用到其他單元格。

=TRIM(RIGHT(SUBSTITUTE(B5,CHAR(10),REPT(" ",200)),200))

A screenshot showing the result of extracting text after the last line break in Excel cells

然後,列表中每個單元格的產品編號部分將如上圖所示被提取出來。

備註:在公式中,CHAR(10)代表 Windows 上的換行符。

 2.7 提取文字前或文字後的文本

在前面的部分中,我們已經學習了如何在字符或分隔依據之前或之後提取文本。那麼,如何在整個單詞之前或之後提取文本呢?本節將介紹三種方法來幫助您完成此任務。

A screenshot showing extracting text before and after the word 'Excel' in Excel cells

2.7.1 使用公式提取指定單詞前的文本

以下公式可幫助您在 Excel 中提取單元格內某個單詞之前的文本。

通用公式

=IFERROR(LEFT(單元格,FIND(單詞,單元格)-1),單元格)

參數

"單元格:" 您想要從中提取指定單詞前的文本的單元格。
"單詞:" 您想要提取其前所有文本的單詞。它可以是單元格引用或用雙引號括起來的實際文本字串;

選擇一個空白單元格,輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。

在此範例中,我們將提取所有在單詞“Excel”之前的文本,因此我們直接在公式中輸入該單詞並用雙引號括起來。或者,您可以引用包含單詞“Excel”的單元格。

=IFERROR(LEFT(B5,FIND("Excel",B5)-1),B5)

A screenshot showing the result of extracting text before the word 'Excel' in Excel cells

備註:

1) 此公式區分大小寫。
2) 如果您輸入的單詞在同一個單元格中有重複,公式只提取第一次出現後的文字。

2.7.2 使用公式提取指定單詞後的文本

要提取某個單詞後的文本,您可以應用以下公式來完成。

通用公式

=TRIM(MID(單元格,SEARCH(單詞,單元格)+LEN(單詞),255))

參數

"單元格:" 您想要從中提取指定單詞後的文本的單元格。
"單詞:" 您想要提取其後所有文字的單詞。它可以是一個儲存格引用或用雙引號括起來的實際文本字串;

選擇一個單元格,輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。

=TRIM(MID(B5,SEARCH("Excel",B5)+LEN("Excel"),255))

然後,您可以看到每個單元格中“Excel”這個詞後的所有文本都已提取,如下圖所示。

A screenshot showing the result of extracting text after the word 'Excel' in Excel cells

備註:

1) 此公式不區分大小寫。
2) 如果您輸入的單詞在同一個單元格中有重複,公式只會提取第一次出現後的文字。

2.7.3 使用強大的工具提取某個單詞前或後的文本

如果您覺得使用公式可能會帶來很多不便,我們強烈推薦使用 "Kutools for Excel" 的 "提取文本" 功能。此功能可幫助您在 Excel 中自動化提取任務,只需幾次點擊即可完成。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 點擊 "Kutools" > "Text" > "提取文本"以啟用此功能。

A screenshot of the Extract Text option in Kutools tab in Excel ribbon

2. 在「提取文本」對話框中,進行以下設定。

2.1) 確保您位於 "按位置提取" 標籤中;
2.2) 在 "區域" 框中,點擊 Range selection button 按鈕以選擇要提取文本的單元格區域;
2.3) 在「選項」部分:
要提取某個單詞前的所有文字,請選擇“文字前”單選按鈕,然後將單詞輸入到文本框中;
要提取所有文字後的文本,請選擇「文字後」選項,然後將單詞輸入到文本框中。
2.4) 點擊“OK”按鈕。請參見截圖:

A screenshot of the Extract Text dialog box

備註:如果您想創建動態結果,請勾選「作為公式插入」選項。然後,當區域中的數據發生變化時,結果將自動更新。

3. 然後會彈出一個 "提取文本" 對話框,您需要選擇一個單元格來輸出結果,然後點擊 "OK" 按鈕。

A screenshot of the Extract Text dialog box showing the output cell selection

然後,選取區域中每個單元格內某個單詞前或後的文本會立即被提取。

備註:此功能區分大小寫。

點擊以了解此功能的更多資訊。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取


3. 提取字符/單詞之間的內容

如果您想提取特定字符或單詞之間的文本,請嘗試以下方法。

3.1 提取兩個字符之間的文本

要提取兩個字符之間的文本,這些字符可以相同或不同。本節提供了幾種方法,您可以選擇適合您需求的方法。

 3.1.1 使用公式提取兩個相同字符之間的文本

如下面的截圖所示,列 B 中有一個文字字串列表,您希望從區域中的每個單元格中提取字符 “/”之間的數字部分,以下公式可以幫助您。

選擇一個空白單元格,複製或輸入以下公式,然後按 "Enter" 鍵以獲得結果。選擇結果單元格,然後向下拖動自動填充手柄以獲得列表中其他單元格的結果。

=SUBSTITUTE(MID(SUBSTITUTE("/" & B5&REPT(" ",6),"/",REPT(",",255)),2*255,255),",","")

然後,從區域中的每個單元格提取兩個相同字符“/”之間的文本。請參見截圖:

備註:

1) "B5" 是您想要從中提取兩個相同字符之間文本的單元格;
2) "/" 是您想要提取文本的兩個相同字符之間。
您需要根據自己的數據更改這些變數。

 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))

您可以看到,如上面的截圖所示,只有指定字符之間的文字被提取出來。

3.1.3 使用一個出色的工具提取兩個字符之間的文本

在此,我們強烈推薦使用「Kutools for Excel」的「提取指定文本間的字串」功能,以幫助您輕鬆提取 Excel 單元格中兩個相同或不同字符之間的文本。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇一個空白單元格以輸出結果,然後點擊 "Kutools" > "公式助手" > "公式助手"。

2. 在「公式助手」對話框中,進行以下選項設置。

2.1) 勾選「篩選」框,然後在文本框中輸入「提取」;
2.2) 在「選擇一個公式」框中,點擊「提取指定文本間的字串」選項;
2.3) 在「參數輸入」部分:
在「單元格」框中,選擇您想要提取文本的單元格(這裡我選擇單元格B5);
在「開始字元(串)」框中,輸入兩個不同字符的開始字元;
在「結束字元(串)」框中,輸入兩個不同字符的結束字符。
2.4) 點擊「確定」。請參閱截圖:

3. 然後,只提取儲存格 B5 中“<”和“>”之間的文字。同時,公式已被創建,您可以選擇此結果單元格,然後向下拖動其自動填充手柄以從同一列表中的其他單元格中提取文字。

點擊以了解更多關於此功能的信息。

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

3.1.4 按規則提取兩個字符之間的文本(包括這些字符)

如果您想在提取後保留兩個字符,請嘗試在 Kutools for Excel 的提取文本功能中應用一個規則。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 點擊 "Kutools" > "文字" > "提取文本"。

2. 在「提取文本」對話框中,進行以下選項設置。

2.1) 點擊「按規則提取」標籤;
2.2) 在「區域」部分,點擊 按鈕以選擇要提取每個字符之間文本的單元格區域;
2.3) 在 "文字" 框中,輸入 "<*>";
提示:「<」和「>」是您想要提取其間文本的字符,* 是代表任意數量字符的通配符。您可以根據需要輸入條件。
2.4) 點擊「添加」按鈕將條件添加到「規則內容」列表框中;
2.5) 點擊「確定」按鈕。請參閱截圖:
A screenshot showing the settings in the Extract Text dialog box, including range selection and text entry

3.另一個「提取文本」對話框彈出。請選擇一個單元格以輸出結果,然後點擊「確定」按鈕。

A screenshot showing the second Extract Text dialog box with a selected output cell

然後,從選定區域中的每個單元格批量提取指定字符之間的文本(包括字符)。

A screenshot showing the extracted text between specified characters in Excel using Kutools

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取

3.2 提取兩個單詞之間的文本

除了提取兩個字符之間的文本外,您可能還需要提取兩個單詞之間的文本。例如,從列B中的每個單元格中提取兩個單詞“KTE”和“feature”之間的所有文本字串,如下圖所示。您可以嘗試以下方法之一來完成此操作。

A screenshot showing a list of text strings between the words 'KTE' and 'feature' in column B for extraction

3.2.1 使用公式提取兩個單詞之間的文本

您可以使用基於中函數和搜尋函數的公式來提取儲存格中兩個單詞之間的所有字串。

通用公式

=MID(單元格,SEARCH("start_word",單元格)+3,SEARCH("end_word",單元格)-SEARCH("start_word",單元格)-4)

參數

"單元格:" 您想要從中提取兩個單詞之間所有字串的單元格;
"Start_word:" 您想要提取其後所有文本字串的兩個單詞的開始單詞;
"Length1:" 開始單詞的字符長度。
"End_word:" 您想要提取的兩個單詞中,所有文本字串之前的結束單詞。
"Length2:" 開始單詞的字符長度加1。

選擇一個空白單元格,複製或輸入以下公式,然後按下 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以將此公式應用於其他單元格。

=MID(B5,SEARCH("KTE",B5)+3,SEARCH("feature",B5)-SEARCH("KTE",B5)-4)

A screenshot showing the formula for extracting text between two words in Excel using the MID and SEARCH functions

備註:在公式中,數字3表示單詞「KTE」的字符長度;數字4表示單詞「KTE」的字符長度加1。

您可以看到,所有位於指定兩個單詞之間的字串已從列B中的每個單元格中提取出來。

3.2.2 使用出色工具提取兩個單詞之間的文本

對許多 Excel 使用者來說,公式可能難以記住和處理。在這裡,使用 "Kutools for Excel" 的 "提取指定文本間的字串" 功能,您只需幾次點擊即可輕鬆提取兩個單詞之間的文本。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

1. 選擇一個單元格以輸出結果,然後點擊 "Kutools" > "公式助手" > "公式助手"。

A screenshot showing the Formula Helper option in the Kutools tab in Excel ribbon

2. 在「公式助手」對話框中,您需要按以下方式進行配置。

2.1) 勾選「篩選」框,然後在文本框中輸入「提取」;
2.2) 在「選擇一個公式」框中,點擊「提取指定文本間的字串」選項;
2.3) 在「參數輸入」部分:
在“單元格”框中,選擇您想要提取文本的單元格(此處我選擇單元格B5);
在「開始字元(串)」框中,輸入您想要提取的兩個單詞的開始單詞,以提取其後的所有字串;
在「結束字元(串)」框中,輸入您想要提取其之前所有字串的兩個單詞的結尾單詞。
2.4) 點擊「確定」。請參閱截圖:

A screenshot of the Formula Helper dialog box with the 'Extract strings between specified text' option selected

3. 然後,儲存格 B5 中兩個單詞 “KTE” 和 “feature”之間的所有字串都被提取出來。同時,已創建一個公式,您可以選擇此結果單元格,然後向下拖動其自動填充柄,以從同一列表中的其他單元格中提取文本。

A screenshot of extracted text between two words in an Excel cell, with the formula applied

Kutools for Excel - 超過 300 種必備工具,讓 Excel 功能更強大。永久免費享受 AI 功能!立即獲取


按位置提取數字

對於一個字母數字字串列表,可能有三種情況:

  1. 數字位於文字的開頭;
  2. 數字位於文字的結尾;
  3. 數字可以在文本中的任何位置。

在本節中,我們將提供不同的方法來提取上述每種情況中的數字。

1 從字串的左邊提取數字

本部分將介紹一個公式,幫助您提取儲存格中文字前出現的數字。

通用公式

=LEFT(單元格, MATCH(FALSE, ISNUMBER(MID(單元格, ROW(INDIRECT("1:"&LEN(單元格)+1)),1) *1),0) -1)

參數

"單元格:" 您想要從文字字串的左邊提取數字的單元格。

備註:

1) 如果您使用的是 Excel2019 或更早版本,您需要按 "Ctrl" + "Shift" + "Enter" 鍵來確認此陣列公式。
2) 如果您使用的是 Excel365 或 Excel2021,只需按下 "Enter" 鍵確認此公式。

選擇一個空白單元格,輸入以下公式,然後按 "Ctrl" + "Shift" + "Enter" 或 "Enter" 鍵以獲得結果。選擇此結果單元格,然後向下拖動其自動填充柄以獲得其他單元格的數字。

=LEFT(B5, MATCH(FALSE, ISNUMBER(MID(B5, ROW(INDIRECT("1:"&LEN(B5)+1)), 1) *1), 0) -1)

備註:

1) 如果單元格僅包含數字,則整個數字將被提取。
2) 此公式僅提取文字字串左對齊的數字。如果數字存在於文字字串的中間或結尾,則會被忽略。

2 從字串右側提取數字

如下面的截圖所示,要提取單元格中出現在文字後的數字,請嘗試以下公式。

通用公式

=RIGHT(cell, LEN(cell) - MAX(IF(ISNUMBER(MID(cell, ROW(INDIRECT("1:"&LEN(cell))),1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(cell))),0)))

參數

"單元格:" 您想要從文字字串的開頭提取數字的單元格。

備註:

1) 如果您使用的是 Excel2019 或更早版本,您需要按下 "Ctrl" + "Shift" + "Enter" 鍵來確認此陣列公式。
2) 如果您使用的是 Excel365 或 Excel2021,只需按 Enter 鍵確認此公式。

選擇一個空白單元格,輸入以下公式,然後按 "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)))

備註:

1) 如果一個單元格僅包含數字,將提取整個數字。
2) 此公式僅從文字字串的右邊提取數字。如果數字存在於文字字串的中間或開頭,則會被忽略。

3. 從文字字串中的任何位置提取所有數字

上述方法有助於僅從文字字串的左側或右側提取數字。如果您想從文字字串中的任何位置提取所有數字,我們在此提供三種方法供您完成。

3.1 使用公式從字串中的任何位置提取所有數字

您可以應用以下公式來從 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. 選擇結果單元格,然後向下拖動其自動填充柄以獲得其他單元格的所有數字。

3.2 使用 VBA 從字串中的任意位置提取所有數字

上述公式對許多 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" 按鈕。

A screenshot of the Kutools for Excel dialog box asking for the input range

4. 然後會彈出另一個 "KutoolsforExcel" 對話框。在此對話框中,選擇一個目標單元格並點擊 "OK"。

A screenshot of the Kutools for Excel dialog box asking for the output range

然後所有數字都會批量從選定區域中的每個單元格中提取出來。

A screenshot showing the result after extracting all numbers using VBA


4. 提取指定文本後的數字

如下面的截圖所示,若要提取特定文本“No.”後的任何數字,本節提供了兩種方法來幫助您完成。

4.1 使用公式提取指定文本後的數字

您可以應用以下公式來提取 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) 如果單元格不包含特定文本,公式將返回 #N/A。
2)公式區分大小寫。

4.2 使用自定義函數提取指定文本後的數字

以下用戶自定義函數也可以幫助提取單元格中特定文本後的數字。請按以下步驟操作。

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

A screenshot of the VBA code to extract numbers after specific text in Excel

3. 按下 "Alt" + "Q" 鍵以關閉 "Microsoft Visual Basic for Applications" 視窗。

4. 選擇一個單元格,輸入以下公式並按下 "Enter" 鍵。選擇此結果單元格,然後向下拖動其自動填充手柄,以將此公式應用於其他單元格。

=GetNumberAfterTheChar(B5,"No. ")

A screenshot showing the result of the VBA method to extract numbers after specific text in Excel

備註:

1) 在此公式中,B5 是您要提取數字的單元格,而“No. ”是您要在其後提取數字的特定文本。您可以根據需要更改它們。
2) 如果在特定文本和數字之間有分隔依據,請在文本末尾添加該分隔依據。在這種情況下,我在文本“No.”後添加了一個空格,最終顯示為“No. ”。
3) 此方法不區分大小寫;
4) 如果單元格不包含特定文本,公式將返回空白結果。

相關文章:

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%,每天為您減少數百次鼠標點擊!