P.S.
I know that regular expressions are able to do that, BUT... I hate their syntax, so I'm searching any other method to complete this task.
Thanks in advance.
你有沒有想過僅從Excel中的字符串列表中提取數字? 在這裡,我介紹一些方法,讓您在Excel中快速,輕鬆地提取數字。
方法3:僅使用Kutools for Excel從文本字符串中提取數字
以下長公式可以幫助您僅從文本字符串中提取數字,請執行以下操作:
選擇要輸出提取的數字的空白單元格,然後鍵入以下公式: = SUMPRODUCT(MID(0&A5,LARGE(INDEX(ISNUMBER( - MID(A5,ROW(INDIRECT(“1:”&LEN(A5))),1))* ROW(間接(“1:”&LEN(A5) )),0),ROW(間接(“1:”&LEN(A5))))+ 1,1)* 10 ^ ROW(間接(“1:”&LEN(A5)))/ 10),然後拖動填充手柄以填充應用此公式所需的範圍。 看截圖:
筆記:
這是一個VBA代碼也可以幫到你,請按以下步驟操作:
1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。
2。 點擊 插入 > 模塊,並將以下代碼粘貼到 模塊 窗口。
VBA代碼:僅從文本字符串中提取數字:
Sub ExtrNumbersFromRange() 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 鍵運行此代碼,彈出一個提示框以提醒您選擇要使用的文本範圍,請參見屏幕截圖:
4。 然後,點擊 OK,另一個提示框如下,請選擇一個單元格輸出結果,見截圖:
5。 最後點擊 OK 按鈕,並且一次提取所選單元格中的所有數字。
Kutools for Excel 也有一個叫做強大的功能 EXTRACTNUMBERS,使用此功能,您可以快速從原始文本字符串中提取數字。
Kutools for Excel : 與超過300方便的Excel加載項,在60天免費試用沒有限制. |
安裝後 Kutools for Excel請按照以下步驟進行:
1。 單擊除了您的文本字符串,您將放置結果的單元格,請參閱截圖:
2。 然後點擊 Kutools > Kutools功能 > 文本 > EXTRACTNUMBERS,看截圖:
3。 在 函數參數 對話框中,選擇要從中提取數字的單元格 文本 文本框,然後輸入 真 or 假 到 N 文本框,看截圖:
備註:說法 N 是一個可選項目,如果你輸入 真,如果輸入,它將返回數字 假,它會以文本格式返回數字,默認為false,所以你可以留空。
4。 然後點擊 OK,數字已從選定的單元格中提取,然後將填充手柄向下拖動到要應用此功能的單元格,您將得到以下結果:
點擊下載並免費試用Kutools for Excel Now!
如果要將文本字符串拆分為單獨的文本和數字列, Kutools for Excel“ 拆分單元格 也可以幫助你解決這個任務。
安裝後 Kutools for Excel 請按照以下步驟進行:
1。 選擇要分割的文本字符串,然後單擊 Kutools > 文本 > 拆分單元格,看截圖:
2. 在 拆分單元格 對話框中選擇 拆分為列 在 類型 部分,然後檢查 文本和數字 來自 拆分 部分,看截圖:
3。 然後點擊 Ok 按鈕,選擇一個單元格,把結果放到彈出的對話框中,看截圖:
4。 然後點擊 OK 按鈕,文本字符串已被分割為單獨的文本和數字列,如下面的截圖所示:
點擊下載並免費試用Kutools for Excel Now!
如果文本字符串包含工作表中的一些十進制數字,那麼如何從文本字符串中僅提取十進制數字?
以下公式可以幫助您快速輕鬆地從文本字符串中提取十進制數。
輸入以下公式:=LOOKUP(9.9E+307,--LEFT(MID(A5,MIN(FIND({1,2,3,4,5,6,7,8,9,0}, $A5&"1023456789")),999),ROW(INDIRECT("1:999")))),然後將句柄填充到要包含此公式的單元格,所有十進制數字都已從文本字符串中提取,請參見屏幕截圖:
Kutools for Excel:比200方便的Excel加載項,可以在60天免費試用。 下載並免費試用現在!