Excel字串擷取數字並沒有直接的工具,可能比較麻煩,本文首先介紹聰明簡單的快速填入,接著是Find函數用法,說明相關觀念,2種方法教你抓取特定資料。
目錄
Toggle一、文字中間有數字
範例是經常看到的狀況,文字中間有數字,在此是Excel公司記帳軟體中的傳票摘要,進貨、出貨、交際費都有類似狀況。在進行資料整理和查詢分析的時候,也許會想要將數字部分抓出來,接下來開始具體操作。

二、複製儲存格內容
首先是最簡單也是最直覺的方法,以第一個摘要為例,想要得到其中的數字「123」,在右邊的空白儲存格手工輸入「123」,然後將滑鼠游標移到已經輸入好「123」的儲存格 B2右下角,當游標形狀變成小黑十字架的時候,記得要連按兩下或者按往下拖曳,如此可以避免Excel填滿空格失敗,而且會在報表資料範圍的右邊複製一欄123,最下方跳出選項視窗,目前是預設的「複製儲存格」,選擇最後一個選項「快速填入」。

三、Excel字串擷取數字
延續上個步驟操作,切換到快速填入之後,原本是完全複製內容,變成剛好是將每一筆摘要字串中的數字部分抓出來,實現Excel字串擷取數字的任務,輕鬆得到想要的資料,算是最快速的Excel資料整理術了。

四、不規則實際案例
接下來是有可能的另一種資料形態,雖然看起來跟先前範例差不多,主要差別是先前數字都是在文字裡面,形成一定規則,而在這裡的第一筆資料,數字在最後面,並沒有在文字中間,稍微有點不規則,仍然可以使用聰明的快速填入擷取數字,可是依照贊贊小屋實際操作經驗,這一次可以,有可能下一次再試就不行了,不是很穩定。
可以想見其中有兩種資料處理的思維,一個是擷取文字中間的數字,另一個是擷取整串文字中數字的部分。在這種情況下,所謂的快速填入有點類似像ChatGPT整理Excel一樣,有時候很聰明,瞭解需求解決問題,但是當你發現它這次沒有那麼聰明,也只能接受。
這是為何雖然AI很方便,可是設計函數公式或者設計程式碼會比較穩定,沒有模糊空間,一板一眼依照設計規則執行,所以接下來要介紹函數方式如此處理範例資料的狀況。

五、FIND函數用法
接下來設計Excel公式:「=FIND({0,1,2,3,4,5,6,7,8,9},A2),在Find函數大括號中是一到九的數字,通常公式是在原有儲存格顯示計算結果,不過在比較新的版本是可以溢出,等於是簡化的Excel陣列公式。以這裡為例,雖然是在B2儲存格輸入公式,計算結果從B到K總共10個儲存格水平展開,依序計算大括號裡面的數字,所以第一個儲存格B2找0,第二個儲存格C2找1,第三個儲存格D2找2,依此類推得到了這裡所看到的結果。
C2到E2正常顯示678,表示123分別出現在六七八的位置,至於123以外的數字在目標儲存格A2沒有,所以Find函數都會傳回「#VALUE!」,代表找不到。

六、解決特定錯誤
設計函數或者程式的基本原則為避免錯誤,最好事先偵測可能的錯誤進行處理,上個步驟已經有去找文字裡面的數字了,但是當文字裡面沒有數字將出現錯誤訊息,想避免這種狀況有個簡單方法,統一在要查找的對象後面加上一長串數字:「=FIND({0,1,2,3,4,5,6,7,8,9},A2&”0123456789″) 」,用到了Concatenate函數的快捷符號「&」合併字串,如此保證了永遠找得到,即使原來字串裡面沒有數字,也會在後面加上的字串(0123456789)找到,不會有錯誤情形發生。

七、只取數字公式
上個步驟雖然解決了找不到的問題,然而計算結果散落在不同儲存格,一方面和習慣的公式操作不同,另一方面也會影響在Excel表格中資料輸入和報表編製。
配合所得到的是一連串數字資料,可以加上MIN函數取最小值:「=MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&”0123456789″))」,由於最小值只有一個,因此這個只取數字公式得到初始位置,只有一個不會外溢,不再擴張分散到其他的儲存格。

Excel不規則字串擷取應用
這篇文章雖然有貼近實務狀況的簡單範例,但是設計的公式也許沒有完全符合需求,等於是做了七八成,不過已經把方案中最困難的部分,包括Find函數、陣列值、最小值、在公式中包含文字、後面加上數字的特殊技巧都提到了,有函數基礎的讀者應該能依照自己的狀況需求繼續設計,例如可以加個Excel IF公式進行判斷處理,或者以LEN函數先計算原始字串長度,也許搭配LEFT函數組合也是常見用法。
前往Excel教學中心:
Excel基礎教學、樞紐分析表教學、Excel成本會計、Excel儲存格技巧、Excel函數教學、Excel庫存管理、Excel圖表教學。