亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用自定義函數(shù)獲取混合內(nèi)容單元格中的指定字符串

        2019-08-24 02:24:26谷城縣審計(jì)局
        審計(jì)月刊 2019年7期
        關(guān)鍵詞:手機(jī)號(hào)碼字符串賦值

        ◆吳 爭(zhēng) 劉 璐/谷城縣審計(jì)局

        由于原始數(shù)據(jù)錄入不規(guī)范,經(jīng)常會(huì)造成數(shù)據(jù)分析人員在前期數(shù)據(jù)結(jié)構(gòu)化整理工作上花費(fèi)較長(zhǎng)的時(shí)間和較多的精力。近日,筆者在某審計(jì)項(xiàng)目中遇到此類情況,較多基礎(chǔ)數(shù)據(jù)全部錄入在一個(gè)單元格內(nèi),且沒有較明顯的規(guī)則來提取,因?yàn)樾枰矸葑C號(hào)碼和手機(jī)號(hào)碼等關(guān)鍵字段,所以必須要對(duì)基礎(chǔ)數(shù)據(jù)開展清洗工作,轉(zhuǎn)換成標(biāo)準(zhǔn)格式以滿足審計(jì)需要。

        部分?jǐn)?shù)據(jù)(以下所有截屏數(shù)據(jù)均為演示數(shù)據(jù))如圖1所示。

        圖1

        從圖中可以看到,C列單元格中包含了人員的社區(qū)信息、身份證號(hào)碼、性別、手機(jī)號(hào)碼、戶籍屬性。

        一、利用VLOOKUP函數(shù)探索

        起初考慮用VLOOKUP函數(shù)加入數(shù)組計(jì)算方式來解決,設(shè)置要輸出身份證號(hào)碼的單元格D2=VLOOKUP(0,MID(C2,ROW($1:$99),18)*{0,1},2,0)。思路是 MID 函數(shù)依次從C2的第1、2、3、4……直至99個(gè)位置,提取長(zhǎng)度為18位的字符,然后分別乘以0和1,即常量數(shù)組{0,1}。如果MID函數(shù)的結(jié)果為文本,那么乘以{0,1}后結(jié)果為錯(cuò)誤值{#VALUE!,#VALUE!};如果MID函數(shù)的結(jié)果為數(shù)值,結(jié)果即為所需提取的18位身份證號(hào)碼。

        實(shí)際運(yùn)算后發(fā)現(xiàn)函數(shù)提取超過11位顯示為科學(xué)計(jì)數(shù),如圖2所示。

        圖2

        于是考慮用英文引號(hào)拼接函數(shù)來調(diào)整顯示格式,修改單 元 格 D2="'"&VLOOKUP(0,MID(C3,ROW($1:$99),18)*{0,1},2,0),運(yùn)行結(jié)果如圖3。

        圖3

        觀察發(fā)現(xiàn),計(jì)算結(jié)果與實(shí)際不符??磥砝肰LOOK?UP函數(shù)加入數(shù)組計(jì)算提取18位的身份證號(hào)碼行不通,只能另辟蹊徑。

        二、運(yùn)用VBA正則運(yùn)算解決問題

        VBA正則表達(dá)式是一種特殊的字符串模式,用于匹配字符串排列的一套規(guī)則。我們可以用這個(gè)規(guī)則去匹配查找可以匹配上的字符串(即單元格中任意想要的信息)。簡(jiǎn)單來說,就是單元格中存在一個(gè)文本信息,這個(gè)信息中有一些我們需要的內(nèi)容,也有很多不需要的內(nèi)容,通過正則表達(dá)式幫助我們從文本中提取想要的內(nèi)容。

        如上例中因?yàn)樯矸葑C號(hào)碼出現(xiàn)位置不固定,我們無法使用函數(shù)LEFT或者M(jìn)ID或者RIGHT來獲取身份證號(hào)碼,使用正則表達(dá)式可以快速獲取身份證號(hào)碼。

        在表格中按下Alt+F11進(jìn)入設(shè)計(jì)模式,插入模塊,編寫語(yǔ)句后保存。語(yǔ)句及注釋如下:

        Function GetCardID(rng As Range,i As Integer)'格式=GetCardID(A1,1),A1代表單元格,1代表從里面提取第幾組,必須在字符之間,但加"|$"可以在字符之后

        Dim Reg

        Dim Mhs

        Set Reg=CreateObject("vbscript.regexp")'創(chuàng)建正則表達(dá)式對(duì)象

        With Reg

        .Pattern="(?:^|D)(d{18}|d{15})(?=^|D)"'匹配正則表達(dá)式,加"|$"可以提取在字符串之后

        Dim Reg

        .Global=True

        Set Mhs=Reg.Execute(rng.Value)'將所有匹配的字符串賦值給Mhs

        End With

        If i-1<0 Or i>Mhs.Count Then'如果自定義函數(shù)的第二參數(shù)小于0或者大于匹配字符串組數(shù)就繼續(xù)執(zhí)行

        GetCardID="#VALUE"'結(jié)果顯示"#VALUE"錯(cuò)誤值

        Exit Function'退出過程

        End If

        GetCardID=Mhs(i-1).submatches(0)'結(jié)果等于匹配字符串的指定組數(shù)

        End Function

        其中With語(yǔ)句塊作用是匹配15位或18位的字符串賦值給Mhs,IF語(yǔ)句塊作用是判斷自定義函數(shù)的第二參數(shù)是否在計(jì)算范圍,兩個(gè)語(yǔ)句塊之后就是從0開始進(jìn)行匹配計(jì)算,成功匹配的字符串賦值給GetCardID函數(shù)。

        三、最終實(shí)現(xiàn)既定目標(biāo)

        設(shè)置要輸出身份證號(hào)碼的單元格D2=GetCardID(C2,1),往下填充至需要計(jì)算的行,得到所需準(zhǔn)確結(jié)果,如圖4所示。

        圖4

        同樣的思路編寫提取手機(jī)號(hào)碼的語(yǔ)句:

        Function GetPhoneNumber(rng As Range,i As Integer)

        Dim Reg

        Dim Mhs

        Set Reg=CreateObject("vbscript.regexp")

        With Reg

        .Pattern="(?:^|D)(d{11})(?=D|$)"

        .Global=True

        Set Mhs=Reg.Execute(rng.Value)

        End With

        If i-1<0 Or i>Mhs.Count Then

        GetPhoneNumber="#VALUE"

        Exit Function

        End If

        GetPhoneNumber=Mhs(i-1).submatches(0)

        End Function

        設(shè)置要輸出手機(jī)號(hào)碼的單元格E2=GetPhoneNumber(C2,1),往下填充至需要計(jì)算的行,得到所需準(zhǔn)確結(jié)果,如圖5所示。

        圖5

        至此,利用VBA正則表達(dá)式快速檢索匹配字符串的功能,從混合內(nèi)容且無規(guī)則的數(shù)據(jù)中檢索提取所需數(shù)值(字符串)完美實(shí)現(xiàn),既提高了工作效率,又保證了工作精度。

        猜你喜歡
        手機(jī)號(hào)碼字符串賦值
        本月來信之最
        關(guān)于1 1/2 … 1/n的一類初等對(duì)稱函數(shù)的2-adic賦值
        L-代數(shù)上的賦值
        “手機(jī)號(hào)碼”繼承公證的可行性及路徑
        法制博覽(2021年4期)2021-11-24 15:03:12
        基于Tesseract-OCR的快遞單中手機(jī)號(hào)碼識(shí)別應(yīng)用的實(shí)現(xiàn)
        強(qiáng)賦值幺半群上的加權(quán)Mealy機(jī)與加權(quán)Moore機(jī)的關(guān)系*
        利用賦值法解決抽象函數(shù)相關(guān)問題オ
        一種新的基于對(duì)稱性的字符串相似性處理算法
        依據(jù)字符串匹配的中文分詞模型研究
        不讓他人通過手機(jī)號(hào)碼找到自己微博
        電腦迷(2012年21期)2012-04-29 22:37:18
        亚洲男同免费视频网站| 玖玖资源站无码专区| 国产精品无码久久久一区蜜臀| 日本一级淫片免费啪啪| 亚洲福利二区三区四区| 亚洲理论电影在线观看| 国产欧美亚洲精品a| 免费国产一级片内射老| 国产我不卡在线观看免费| av无码精品一区二区三区| 亚洲国产美女精品久久久| 日日摸日日碰人妻无码老牲| 亚洲区一区二区三区四| 日本女优在线一区二区三区| a级毛片免费完整视频| 欧美第五页| 日本成人在线不卡一区二区三区| 福利视频一区二区三区| 欧美性猛交xxxx富婆| 精品国产一区二区三区AV小说| 亚洲av成人久久精品| 日韩精品亚洲一区二区| 国产乱xxⅹxx国语对白| 亚洲无码夜夜操| 国产一区二区三区小向美奈子| 久久理论片午夜琪琪电影网| 拍摄av现场失控高潮数次| 成激情人妻视频| 精品日本一区二区三区| 丰满岳乱妇一区二区三区| 69精品免费视频| 成人综合激情自拍视频在线观看| 欧美a级毛欧美1级a大片| 国产精品久久毛片av大全日韩| 免费一级a毛片在线播出| 91国产自拍精品视频| 国产一区二区三区在线电影| 老熟妇仑乱一区二区视頻| 尤物成av人片在线观看| 亚洲av综合色区无码专区桃色| 日本免费人成视频播放|