EXcel提取[ab{*}ab]型字符串中數(shù)字的方法

經(jīng)常看到小伙伴,在群里問,提取手機(jī)號碼,提取薪資信息中的數(shù)字,之前并沒有刻意去研究Excel的方法,有些看起來很簡單的操作,也是要搜索幾篇博文后,才找到合適方法,還是需要做個記錄總結(jié)。以提取薪資信息中的上限和下限數(shù)字字符為例,總結(jié)幾個小方法。

1.分列實(shí)現(xiàn)

選中需要提取數(shù)字的單元格,點(diǎn)擊數(shù)據(jù)--分列,字符寬度不確定,一般是按默認(rèn)選擇‘分隔符號’,點(diǎn)擊下一步,分隔符號根據(jù)需求來設(shè)置,比如這里加上‘其他’設(shè)置,設(shè)為‘k’,點(diǎn)擊下一步,‘目標(biāo)區(qū)域’默認(rèn)顯示的是上一步選中的需要提取數(shù)字的單元格,這里建議手動選擇區(qū)域,不去覆蓋原始數(shù)據(jù),再點(diǎn)擊‘完成’,提取出上下限數(shù)字字符,但是下限那里有個‘-’,可以用很多種方法去掉,比如這里在D2單元格輸入:=RIGHT(C2,LEN(C2)-1),回車后,去掉負(fù)號,再下拉拖動,填充格式,其他行對應(yīng)的D列單元格也自動提取出薪資上限值。操作截圖如下,

2.函數(shù)實(shí)現(xiàn)

組合使用mid,left,len函數(shù),提取薪資上下限數(shù)字字符。先在B2中輸入:=LEFT(A2,FIND("k",A2)-1),回車后,提取出第一個'k'前面的下限數(shù)值;再在C2中輸入:=MID(A2,FIND("-",A2)+1,LEN(A2)-(LEN(B2)+2)-1),回車后,提取出第二個'k'后面的上限數(shù)值,選中B2和C2,下拉拖動,填充格式,其他行對應(yīng)的D列單元格也自動提取出薪資下限和上限數(shù)值。操作截圖如下,

3.快速填充實(shí)現(xiàn)

先在B2和C2單元格輸入‘9’和‘15’,從B2開始,下拉拖動到A列最末單元格對應(yīng)的行所在位置,點(diǎn)擊數(shù)據(jù)--快速填充,自動填充完成,提取出下限數(shù)值。同理,C列單元格也是相同操作完成,提取上限數(shù)值。操作截圖如下,

4.VBA實(shí)現(xiàn)

這個需要office啟用宏功能,文件--選項--信任中心--信任中心設(shè)置,點(diǎn)擊‘宏設(shè)置’,修改選項如下操作,具體可參考o(jì)ffice官方說明。

打開VBA界面方法:

(1)按‘Alt+F11’,有的筆記本快捷鍵默認(rèn)是‘Alt+Fn+F11’

(2)菜單欄--開發(fā)工具,點(diǎn)擊‘Visual Basic’,

(3)工作表名稱右鍵單擊,選擇‘查看代碼’;

然后,在對應(yīng)工作表下,右鍵單擊,選擇‘插入’--‘模塊’,模塊窗口工作區(qū)域,復(fù)制下面代碼,

Sub 提取薪資數(shù)字()

? ? arr = Range("a2:a20" & Range("a65536").End(3).Row)

? ? Set reg = CreateObject("vbscript.regexp")

? ? reg.Pattern = "\d*"

? ? reg.Global = True

? ? For i = 1 To UBound(arr, 1)

? ? ? ? s = arr(i, 1)

? ? ? ? If reg.Test(s) Then

? ? ? ? ? ? Set mymatch = reg.Execute(s)

? ? ? ? ? ? m = 2

? ? ? ? ? ? For Each mat In mymatch

? ? ? ? ? ? ? ? Cells(i + 1, m) = mat

? ? ? ? ? ? ? ? m = m + 1

? ? ? ? ? ? Next

? ? ? ? End If

? ? Next i

End Sub

返回到Excel對應(yīng)工作表中,提取出薪資上下限數(shù)值,操作截圖如下,再統(tǒng)一調(diào)整格式即可。

小結(jié):

文中的例子,提取比較簡單有規(guī)律,快速實(shí)現(xiàn)方法,可以用快速填充和分列,是很方便的。時間充裕的情況下,也可以用組合函數(shù)或VBA實(shí)現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容