KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中找出字串中的第一個或所有數字?

作者Kelly修改日期

在 Excel 中處理複雜資料時,經常會遇到同時包含字母、數字與特殊字元的儲存格。從這些字串中擷取第一個數字或所有數字,對於資料清洗、分析與驗證至關重要。例如,您可能需要從產品名稱中分離零件編號、從地址中提取郵遞區號,或從各式文字報表中取出數值資訊。手動搜尋字串中的數字不僅耗時費力,還容易出錯,尤其在面對大型資料集時更顯棘手。本教學將為您介紹一系列實用技巧,協助您根據不同情境與技能程度,在 Excel 中高效地找出內嵌於字串中的第一個或全部數字。


使用公式在文字字串中找出第一個數字及其位置

此方法提供一組實用公式,不僅能輕鬆找出並提取文字字串中的第一個數字,還可精確定位該數字字元在儲存格中的位置。特別適合需要分析標準化字串的使用者——例如處理內含描述性文字、且數字位置不固定的產品代碼或 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 的「刪除特定字符」功能正是您的理想選擇!此功能特別適合經常處理匯入資料、需要快速批次清理儲存格,且偏好簡易介面而非複雜公式的使用者,輕鬆提升工作效率!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取要處理以提取所有數字的儲存格範圍,然後依序點選選單:Kutools > 文字 > 刪除特定字元。請參閱以下截圖作為操作指引:
點擊 Kutools 的「移除字元」功能

2. 在出現的「刪除特定字符」對話方塊中,僅勾選非數字核取方塊,然後按一下確定以繼續。
勾選「非數字」選項

結果,此工具會移除所選儲存格中的所有非數字字元,僅保留其中的數字部分。
所有非數字字元皆已移除

執行此操作前,建議先備份您的範圍,以便必要時還原。針對包含以字母分隔之數字的文字字串(例如「A23B17」),所有數字將自動串接為「2317」。若您期望不同的排列方式,可考慮將此功能搭配其他函數使用。

Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得


僅提取數字以找出文字字串中的所有數字

若您希望直接提取儲存格內所有數字(不論格式)並合併為單一數值,EXTRACTNUMBERS 函數(內建於 Kutools for Excel)提供了一種直覺又高效的做法!特別適合需要批次處理,同時偏好使用函數公式、靈活套用至工作表各處的使用者——立即體驗,大幅提升工作效率!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取一個空白儲存格以顯示提取的數字,然後按一下 Kutools > 函數 > 文字 > EXTRACTNUMBERS。請參閱以下圖示:
點擊 Kutools 的「EXTRACTNUMBERS」功能

2. 在「函數引數」對話方塊中,將相關文字儲存格指派給 Txt 欄位,並在 TRUE 欄位中輸入 N(以傳回數值),然後按一下確定,立即確認並提取數字!
在對話方塊中指定儲存格參照

注意事項
(1)您可輸入 TRUEFALSE,或將 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 內建的快速填滿功能可透過學習範例模式,自動從文字字串中擷取數字。此方法特別適用於結構良好的資料,能讓您快速手動處理;當您需要簡單、無需公式的解決方案,又不想設定複雜邏輯時,更是不容錯過!

若要使用快速填滿從字串中擷取數字:

  1. 在緊鄰您資料的空白列中,手動於第一個儲存格輸入預期的提取結果。例如,若 A2 包含「OrderA 12B3」,請在 B2 輸入「123」作為範例。
  2. 移至範例下方的儲存格(例如 B3),並開始輸入下一行的預期結果。Excel 可能會顯示其偵測到的模式預覽。若預覽符合您的預期,只需按下 Enter 即可;否則,請再提供幾個輸入範例,以清楚示範您期望的模式。
  3. 或者,先在第一個儲存格提供範例,接著選取整個目標列表區域,然後前往資料> 快速填滿(或按 )Ctrl + E),Excel 將根據學習到的模式自動填入提取的數字。

快速填滿會根據一致的輸入與輸出關係進行判斷,因此請確保您提供的範例清晰且準確。當資料格式具有規律性時,此功能效果最佳;若資料結構變化較大,或需精確控制,建議改用公式或巨集來處理。

若「快速填滿」未出現,請檢查是否已在檔案 > 選項 > 進階 > 編輯選項 中勾選自動快速填滿

示範:在 Excel 中找出字串中的所有數字

 

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 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 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用