如何在 Excel 中找出字串中的第一個或所有數字?
在 Excel 中處理複雜資料時,經常會遇到同時包含字母、數字與特殊字元的儲存格。從這些字串中擷取第一個數字或所有數字,對於資料清洗、分析與驗證至關重要。例如,您可能需要從產品名稱中分離零件編號、從地址中提取郵遞區號,或從各式文字報表中取出數值資訊。手動搜尋字串中的數字不僅耗時費力,還容易出錯,尤其在面對大型資料集時更顯棘手。本教學將為您介紹一系列實用技巧,協助您根據不同情境與技能程度,在 Excel 中高效地找出內嵌於字串中的第一個或全部數字。
- 使用公式在文字字串中找出第一個數字及其位置
- 移除所有非數字字元以找出文字字串中的所有數字
- 僅提取數字以找出文字字串中的所有數字
- 使用 VBA 程式碼(巨集迴圈)提取第一個或所有數字
- 使用快速填滿從字串中提取數字
使用公式在文字字串中找出第一個數字及其位置
此方法提供一組實用公式,不僅能輕鬆找出並提取文字字串中的第一個數字,還可精確定位該數字字元在儲存格中的位置。特別適合需要分析標準化字串的使用者——例如處理內含描述性文字、且數字位置不固定的產品代碼或 ID。
使用陣列公式找出並提取文字字串中的第一個數字
選取一個空白儲存格,用以提取文字字串中的第一個數字。輸入公式 =MID(A2,MIN(IF((ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0)*ROW(INDIRECT("1:"&LEN(A2)))),ISNUMBER(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)+0)*ROW(INDIRECT("1:"&LEN(A2))))),1)+0(其中 A2 為您要搜尋第一個數字的文字儲存格),然後同時按下 Ctrl+Shift+Enter。此陣列公式將逐一檢查字串中的每個字元,確保精準找出首個數字。
確認無誤後,向下拖曳儲存格的填滿控點,即可輕鬆將公式套用至其他列!
套用後,各文字字串的第一個數字將被找出並提取,如下所示:
使用公式找出文字字串中第一個數字的位置
選取一個空白儲存格,用來顯示第一個數字的位置,並輸入下列公式:=MIN(IF(ISNUMBER(FIND({1,2,3,4,5,6,7,8,9,0},A2)),FIND({1,2,3,4,5,6,7,8,9,0},A2)))(此處 A2 為您要檢查的儲存格)。此公式可快速找出任一數字(0–9)首次出現的位置!視需要向下拖曳公式,即可自動填滿相鄰儲存格。

注意:您也可以使用以下陣列公式:=MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&{0,1,2,3,4,5,6,7,8,9}))。請務必以 Ctrl+Shift+Enter 確認輸入。複製公式時,若結構有所調整,請同步更新所有固定的儲存格參照。若字串中不含任何數字,這些公式將傳回錯誤;此時可使用 IFERROR 函數包裹公式,以顯示自訂訊息,確保報表清晰無誤。
移除所有非數字字元以找出文字字串中的所有數字
若您希望透過單純移除非數字字元的方式,快速取得儲存格中的所有數字,Kutools for Excel 的「刪除特定字符」功能正是您的理想選擇!此功能特別適合經常處理匯入資料、需要快速批次清理儲存格,且偏好簡易介面而非複雜公式的使用者,輕鬆提升工作效率!
1. 選取要處理以提取所有數字的儲存格範圍,然後依序點選選單:Kutools > 文字 > 刪除特定字元。請參閱以下截圖作為操作指引:
2. 在出現的「刪除特定字符」對話方塊中,僅勾選非數字核取方塊,然後按一下確定以繼續。
結果,此工具會移除所選儲存格中的所有非數字字元,僅保留其中的數字部分。
執行此操作前,建議先備份您的範圍,以便必要時還原。針對包含以字母分隔之數字的文字字串(例如「A23B17」),所有數字將自動串接為「2317」。若您期望不同的排列方式,可考慮將此功能搭配其他函數使用。
Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
僅提取數字以找出文字字串中的所有數字
若您希望直接提取儲存格內所有數字(不論格式)並合併為單一數值,EXTRACTNUMBERS 函數(內建於 Kutools for Excel)提供了一種直覺又高效的做法!特別適合需要批次處理,同時偏好使用函數公式、靈活套用至工作表各處的使用者——立即體驗,大幅提升工作效率!
1. 選取一個空白儲存格以顯示提取的數字,然後按一下 Kutools > 函數 > 文字 > EXTRACTNUMBERS。請參閱以下圖示:
2. 在「函數引數」對話方塊中,將相關文字儲存格指派給 Txt 欄位,並在 TRUE 欄位中輸入 N(以傳回數值),然後按一下確定,立即確認並提取數字!
注意事項:
(1)您可輸入 TRUE、FALSE,或將 N 欄位留空。TRUE 會傳回數值;FALSE 或留空則會以文字形式傳回數字(有助於保留前置零)。
(2)此功能也可直接作為公式用於工作表:=EXTRACTNUMBERS(A2,TRUE)。請在您偏好的輸出儲存格中輸入此公式,立即體驗高效資料處理!
(3)將公式複製到相鄰儲存格時,請務必視需要調整儲存格參照,確保結果準確無誤。
從各文字儲存格提取的數字將如下圖所示:
Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
使用 VBA 程式碼(巨集迴圈)提取第一個或所有數字
當公式與內建功能無法滿足需求時——例如,您需要從字串中提取第一個數字、第一個完整的數字序列,或所有獨立的數字——使用 VBA 程式碼將帶來更高的彈性與自動化能力!此方法特別適合經常處理大型資料集中的特殊提取需求,或希望透過可重複使用的巨集自動化工作流程的使用者。立即體驗高效數據處理,但請注意:執行前務必啟用巨集,並在處理大型資料集前備份檔案,以防萬一!
1. 在 Excel 主視窗中,按一下開發人員工具 > Visual Basic,即可開啟 VBA 編輯器。在 Microsoft Visual Basic for Applications 視窗中,選取插入 > 模組,並將下列程式碼複製貼上至新模組中:
提取第一個數字:僅擷取每個字串中出現的第一組連續數字(例如,「abc 12def 45」將傳回 12)。
Sub ExtractFirstNumber()
Dim rng As Range
Dim cell As Range
Dim txt As String
Dim i As Integer
Dim sNum As String
Dim FirstNum As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set rng = Application.InputBox("Select range", xTitleId, rng.Address, Type:=8)
For Each cell In rng
txt = cell.Value
sNum = ""
FirstNum = ""
For i = 1 To Len(txt)
If Mid(txt, i, 1) Like "[0-9]" Then
sNum = sNum & Mid(txt, i, 1)
If i = Len(txt) Or Not (Mid(txt, i + 1, 1) Like "[0-9]") Then
FirstNum = sNum
Exit For
End If
ElseIf sNum <> "" Then
FirstNum = sNum
Exit For
End If
Next i
cell.Offset(0, 1).Value = FirstNum
Next cell
End Sub 提取所有數字:自動依序擷取所有數字區塊,並以空格分隔(例如:「abc 12def 45」將傳回「12 45」)。
Sub ExtractAllNumbers()
Dim rng As Range
Dim cell As Range
Dim txt As String
Dim i As Integer
Dim arrNums As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set rng = Application.InputBox("Select range", xTitleId, rng.Address, Type:=8)
For Each cell In rng
txt = cell.Value
arrNums = ""
For i = 1 To Len(txt)
If Mid(txt, i, 1) Like "[0-9]" Then
arrNums = arrNums & Mid(txt, i, 1)
Else
If arrNums <> "" Then
arrNums = arrNums & " "
End If
End If
Next i
arrNums = WorksheetFunction.Trim(arrNums)
cell.Offset(0, 1).Value = arrNums
Next cell
End Sub 2. 在 VBA 編輯器中,點擊
執行按鈕,或按下 F5 以執行程式碼。執行後,系統將彈出對話方塊,提示您選取目標範圍,並將擷取的數字寫入原始資料右側相鄰的欄位中。
請確認您的工作表未使用資料右側相鄰的欄位,以免覆寫既有內容。若程式碼似乎無法運作,請檢查活頁簿是否已啟用巨集,並確認文字值確實包含數字。
使用快速填滿從字串中提取數字
Excel 內建的快速填滿功能可透過學習範例模式,自動從文字字串中擷取數字。此方法特別適用於結構良好的資料,能讓您快速手動處理;當您需要簡單、無需公式的解決方案,又不想設定複雜邏輯時,更是不容錯過!
若要使用快速填滿從字串中擷取數字:
- 在緊鄰您資料的空白列中,手動於第一個儲存格輸入預期的提取結果。例如,若 A2 包含「OrderA 12B3」,請在 B2 輸入「123」作為範例。
- 移至範例下方的儲存格(例如 B3),並開始輸入下一行的預期結果。Excel 可能會顯示其偵測到的模式預覽。若預覽符合您的預期,只需按下 Enter 即可;否則,請再提供幾個輸入範例,以清楚示範您期望的模式。
- 或者,先在第一個儲存格提供範例,接著選取整個目標列表區域,然後前往資料> 快速填滿(或按 )Ctrl + E),Excel 將根據學習到的模式自動填入提取的數字。
快速填滿會根據一致的輸入與輸出關係進行判斷,因此請確保您提供的範例清晰且準確。當資料格式具有規律性時,此功能效果最佳;若資料結構變化較大,或需精確控制,建議改用公式或巨集來處理。
若「快速填滿」未出現,請檢查是否已在檔案 > 選項 > 進階 > 編輯選項 中勾選自動快速填滿。
示範:在 Excel 中找出字串中的所有數字
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用