1. 程式人生 > >Excel怎樣從字串中提取位置和長度不固定的數字

Excel怎樣從字串中提取位置和長度不固定的數字

最近上課的時候,常常有學員諮詢怎樣從Excel字元中提取位置和長度都不固定的數字,今天我們分兩種情況來聊一聊對應的解決方案。


情況1:數字前後有特定的分隔符


如果數字前後有特定的分隔符,比如()、##等分隔符,那麼我們可以通過查詢這些分隔符的位置,來定位到數字的位置。


比如下圖所示的這個案例,要提取的數字是所有的加分值,每個加分值的前面都有一個“+”號,後面都有一個“分”字。類似這種資料,我們可以通過FIND函式來查詢出“+”和“分”的位置。


Find函式用來對原始資料中某個字串進行定位,以確定其位置。Find函式進行定位時,總是從指定位置開始,返回找到的第一個匹配字串的位置,而不管其後是否還有相匹配的字串。

語法:FIND(找什麼,在那裡找,起始位置)


在本例中,“+”號在字串中只出現一次,比如想查詢B2+的位置,就可以使用函式=FIND("+",B2)來獲得。


而如果要獲得“分”字的位置,由於B列中的資料不僅僅是數字後面有“分”字,比如B5單元格中“分享心得+2分”的第1個字元也是“分”字,所以我們在使用FIND函式的時候,還需要用到第3個引數,也就是起始位置,我們把起始位置設定為C2單元格的值,也就是要查詢的是從+號開始的第一個“分”字的位置。


這樣我們就可以用D2-C2-1計算出數字的長度。



最後可以使用MID文字提取函式來取出數字:=MID(B2,C2+1,E2)



以下是函式的完成效果:



情況2:沒有任何規律


如果數字不管是長度還是位置都是沒有規律的,用Excel函式很難提取出來數字,雖然在網上能搜尋到一些組合函式,但我測試過好多個都不一定能提取到數字,而且函式極其複雜。



其實我們可以結合到Word的替換功能來輕鬆搞定這個問題。將要提取數字的列複製到Word中,[CTRL+H]開啟替換功能,選擇“更多”,勾選“萬用字元”,在查詢內容中輸入[!0-9],意思是查詢除0-9以外的字元,在替換為中什麼都不用輸入,點選全部替換。


此時我們看到表格中的所有除數字以外的字元都被刪除了,之後我們就可以把這一列複製回到Excel中。


以上就是本期的全部內容,有沒有get到一些技巧呢~