Excel 文本截取函數(shù)LEFT、RIGHT、MID及應用案例
用于文本截取的函數(shù)有3個,LEFT、RIGHT、MID,可以從指定位置截取指定數(shù)量的字符;還有基于截取字節(jié)的LEFTB、RIGHTB、MIDB,不常用,也很簡單。
LEFT函數(shù)語法:=LEFT(字符, [提取字符數(shù)]),從文本字符串的第一個字符開始返回指定個數(shù)的字符。
RIGHT函數(shù)與LEFT函數(shù)語法相同,根據(jù)所指定的字符數(shù)返回文本字符串中最后一個或多個字符。
MID函數(shù)語法:=MID(字符, 開始字符數(shù), 提取字符數(shù)),返回文本字符串中從指定位置開始的特定數(shù)目的字符,該數(shù)目由用戶指定。
需要注意的是以上函數(shù)中提取字符數(shù)必須是>0的整數(shù),如果提取字符數(shù)大于字符長度,則返回從所有字符;MID函數(shù)的開始字符數(shù),包含開始提取的第一字符本身,且必須是>0的整數(shù),如果大于字符長度,則返回空。
接下來看一下幾個函數(shù)的用法:
在D4單元格中輸入,=LEFT(C4,2),雙擊填充,公式從左則提取2個字符。 在E4單元格中輸入,=LEFTB(C4,2),雙擊填充,公式從左則提取2個字節(jié)。 在F4單元格中輸入,=RIGTH(C4,2),雙擊填充,公式從右則提取2個字符。 在D4單元格中輸入,= RIGTHB(C4,2),雙擊填充,公式從右則提取2個字節(jié)。 可以看得出來,漢字、英文、數(shù)字一個字是1個字符。漢字一個字是2個字節(jié)、英文、數(shù)字一個字是1個字節(jié)。關于字符與字節(jié)的區(qū)別,可以在網(wǎng)絡上自行查詢學習。 再來看一下MID的用法。
在H4單元格中輸入,=MID(C4,5,2),雙擊填充,公式從第5個(含第5個)字符開始提取2個字符。 在I4單元格中輸入,=MIDB(C4,5,2),雙擊填充,公式從第5個(含第5個)字節(jié)開始提取2個字節(jié)。 3個函數(shù)一般會配合其它函數(shù)綜合應用,比如配合FIND、SEARCH函數(shù),后面會講解。
看2個使用文本提取函數(shù)有關的綜合案例
案例1:提取身份證號碼中的出生年月日
分析下,身份證號碼中第7-14位是出生年月日,共8位,是固定的。
在D12單元格中輸入,=MID(C33,7,8),從第7位開始,提取8位,就得到了年月日。如果想讓數(shù)字更易讀,可以使用TEXT函數(shù)進行格式化,比如=TEXT(MID(C10,7,8),"0000年00月00日")。
案例2:提取文本中的數(shù)字。從簡單的來,前提是確定數(shù)字的位置,但數(shù)字有多少個不確定。
先分析下,位置固定,根據(jù)情況使用LEFT或RIGTH,案例中使用RIGTH。 接下來需要確定提取多少個字符,可以使用字符與字節(jié)區(qū)別的特性,漢字一個字是1個字符或2個字節(jié),數(shù)字一個字是1個字符也是1個字節(jié),可以使用LEN函數(shù)與LENB函數(shù),找出字符與字節(jié)的差異數(shù)量就是數(shù)字的字符數(shù)。看公式
在D10單元格中輸入,=RIGHT(C10,LEN(C10)*2-LENB(C10)),就可以得到文本中的數(shù)字。 加大一點難度,數(shù)字在文本中位置不確定、數(shù)字有多少個也不確定。 分析下:在文本中,需要使用MID函數(shù)。數(shù)字多少個,使用上個案例中的方法;位置不確定,可以使用ROW函數(shù)生成一個動態(tài)數(shù)組,從1開始,到一個足夠大的值作為開始字符數(shù),這里使用30,足夠了。這樣就從第1到第30個字符開始截取,會提到一個數(shù)組,其中只有一個是包含完整數(shù)字的。MID提取的數(shù)字是文本類型,可以使用文本轉(zhuǎn)數(shù)值的函數(shù)或其它技巧轉(zhuǎn)成數(shù)值,然后再使用LOOKUP函數(shù)提取近似值。
先在D11單元格中輸入,=MID(C11,ROW(1:30),LEN(C11)*2-LENB(C11)),得到一個數(shù)組。然后使用添加”--"號或+0的方式,把文本型的數(shù)字轉(zhuǎn)成數(shù)值型數(shù)字,如果不是數(shù)字就得返回一個錯誤值。這是一個很好用技巧,在寫公式的過程中要充分利用這個特性。 接下來在外面寫LOOKUP函數(shù), LOOKUP的模糊匹配特性會返回接近這個值的數(shù)字。最后的公式是:=LOOKUP(9^9,--MID(C11,ROW(1:30),LEN(C11)*2-LENB(C11))。