之前我們說(shuō)過(guò)從左提取函數(shù)left的用法,今天說(shuō)下它的兄弟函數(shù)mid的用法。
-01-
函數(shù)說(shuō)明
MID函數(shù)返回文本字符串中從指定位置開(kāi)始的特定數(shù)目的字符,該數(shù)目由用戶(hù)指定。
它的語(yǔ)法結(jié)構(gòu)如下:MID(text, start_num, num_chars)
有3個(gè)參數(shù),參數(shù)中沒(méi)有中括號(hào),都是必須要寫(xiě)的。
text 必需。包含要提取字符的文本字符串。
start_num 必需。文本中要提取的第一個(gè)字符的位置。
num_chars 必需。指定希望 MID 從文本中返回字符的個(gè)數(shù)。
簡(jiǎn)單理解就是mid(文本字符串,從第幾個(gè)字符提取,提取幾位)
這個(gè)函數(shù)也有幾點(diǎn)注意事項(xiàng):
如果 start_num 大于文本長(zhǎng)度,則 MID 返回空文本 ("")。
如果 start_num 小于文本長(zhǎng)度,但 start_num 加上 num_chars 超過(guò)了文本的長(zhǎng)度,則 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,則 MID 返回 錯(cuò)誤值 #VALUE!。
如果 num_chars 為負(fù)數(shù),則 MID 返回 錯(cuò)誤值 #VALUE!。
-02-
示例解釋
如下圖所示,在B1單元格中輸入如下公式,結(jié)果為“excel”。函數(shù)的意思是在A1單元格的字符串中,從第4個(gè)字符開(kāi)始提取,也就是“e”,提取5位,剛好是“excel”,從“e”開(kāi)始算作第1位。
如下圖所示,在B1單元格中輸入如下公式,結(jié)果為空“”。為什么會(huì)這樣呢?現(xiàn)在函數(shù)是從第9個(gè)字符開(kāi)始提取,但A1單元格字符數(shù)總共才是8。所以會(huì)返回空,符合注意事項(xiàng)的第1條。
如下圖所示,在B1單元格中輸入如下公式,結(jié)果還是“excel”。還是從第4個(gè)字符開(kāi)始提取,提取的位數(shù)為7位。但是從e開(kāi)始算后面只有5位了。所以只能提到這5位。符合注意事項(xiàng)的第2條。
最后2條注意事項(xiàng),希望你自己測(cè)試一下。下面看具體應(yīng)用。
-03-
具體應(yīng)用
1.根據(jù)身份證號(hào)提取出生日期
下面是我亂編的幾個(gè)身份證號(hào),我們知道身份證號(hào)中包含出生日期,所以提取很簡(jiǎn)單,在B4單元格中輸入公式=MID(A4,7,8)。從第7位提取8位,就是出生日期。
但是你會(huì)發(fā)現(xiàn)這樣提取出來(lái)的出生日期不是標(biāo)準(zhǔn)的日期格式。需要用text函數(shù)將其轉(zhuǎn)化成日期格式,公式為=TEXT(MID(A4,7,8),"0-00-00"),向下拖動(dòng)。
2.根據(jù)身份證號(hào)判斷性別
我們知道身份證倒數(shù)第2位,也就是第17位可以判斷性別。如果是奇數(shù)為男,偶數(shù)為女。第一步,先將第17位提取出來(lái),如下圖。
第二步要判斷是奇數(shù)還是偶數(shù)用mod函數(shù),公式為=MOD(MID(A4,17,1),2)。mod是求余函數(shù),后面會(huì)講。這里簡(jiǎn)單提一下。我們知道奇數(shù)除2,余數(shù)肯定為1;偶數(shù)除2,余數(shù)肯定為0。
第三步,用if判斷,如果是1,就為男;否則為女。公式為=IF(MOD(MID(A4,17,1),2),"男","女")。如果你需要錄入身份證號(hào),還要錄入性別,那么用這條公式,性別自動(dòng)計(jì)算出來(lái)。
3.提取數(shù)字
A列中是一些字符串,現(xiàn)在要將其中的數(shù)字提取出來(lái)。在B10單元格中輸入公式=MAX(IFERROR(--MID(A10,ROW($1:$20),TRANSPOSE(ROW($1:$20))),))。數(shù)組公式,要按ctrl+shift+enter。
這個(gè)公式中用到了數(shù)組,看起來(lái)有點(diǎn)復(fù)雜,實(shí)際也好理解。思路是這樣的:從第1個(gè)字符提1位,2位,...直到20位;然后從第2個(gè)字符提1位,2位,...直到20位;...直到從第20個(gè)字符提1位,2位,...直到20位。
然后用--進(jìn)行數(shù)學(xué)運(yùn)算,把文本數(shù)字轉(zhuǎn)為數(shù)字,文字轉(zhuǎn)成錯(cuò)誤值。后面用iferror將錯(cuò)誤值改成0,最后用max提取最大值,就是我們要的數(shù)字。
這里的重點(diǎn)是mid第2和第3參數(shù)都是2個(gè)一維數(shù)組,并且是方向不同的一維數(shù)組,這樣就會(huì)形成一個(gè)二維數(shù)組。數(shù)組以后我們也會(huì)講的。
好了,今天的mid函數(shù)就到這里了。你都學(xué)會(huì)了嗎?
如果喜歡的話(huà),請(qǐng)轉(zhuǎn)發(fā)和打賞,你們的支持就是我堅(jiān)持的動(dòng)力!
聯(lián)系客服