▶▶▶點擊右上角關注,獲取更多EXCEL技巧◀◀◀
我們在工作中,有沒有遇到過需要在一串有中文和數字組成的字符串,比如:曹操 13971403001,135711021131 馬超。碰到從這種由姓名和電話号碼組成的字符串中提取姓名或者提取電話号碼,該怎麼辦呢?
像上圖這樣的情況還好說,我們可以直接使用Excel的自帶功能“自動填充”搞定。
就像上圖演示的這樣,直接在旁邊的單元格輸入一個“示例”回車,再使用Ctrl E的組合鍵就可以完成“快速填充”。這種情況當然是最理想的,那如果遇到的是下圖這樣的情況呢:
毫無規律吧,有的中間有空格,有的沒有,有的名字在前面,有的名字在後面,這種情況使用“快速填充”就不好使了。
上圖就是使用“快速填充”後的結果,那遇到這樣的情況該怎麼辦呢?
這就需要函數來幫忙了。這裡我們會用到的函數有:IF、ISNUMBER、LEN、LENB、LEFT、RIGHT、TRIM、INT
LEFT函數和RIGHT函數我在我的上一篇文章裡已經講過了,這裡就不再重複了。想看的朋友可以點這個鍊接:文本截取函數
因為上圖中,名字的位置不固定有時在前有時在後,所有需要使用IF函數配合ISNUMBER函數進行判斷具體需要使用LEFT函數還是RIGHT函數來截取字符。
在上圖中,公式“=ISNUMBER(INT(LEFT(E5,1)))”中,LERT函數負責提取E5單元格的第一個字符,然後用INT函數轉換成數字(如果能轉換成數字就轉換成數字,不能則返回錯誤值),最後ISNUMBER函數判斷是數字就返回TRUE,不是數字則返回FALSE.
如果ISNUMBER函數的返回值時TRUE時,在這裡說明第一個字符是數字,名字在字符串的後面,我們就需要使用LEFT函數從字符串的最左邊開始截取字符。如果返回的值未FALSE則使用RIGHT函數從最右邊開始截取字符。
好啦,現在我們知道了該使用什麼函數來截取字符,但是還不知道截取多長的字符(因為這裡的号碼都是手機号碼,所以都是11位的,但是如果裡面有座機号碼就需要判斷具體要截取多少個字符了),這就需要用到計算字符長度的函數LEN和LENB了。
在上圖中,我們可以看到LENB函數提取的字符長度和LEN函數提取的字符串長度是不一樣的,因為在計算機中,漢字都是占兩個字節的,所在這裡每個漢字都算兩個字符,所以這裡用“LENB(F2)-LEN(F2)”後得出的結果就剛好是漢字的個數。
這時我們就可以通過計算得出需要截取的字符串的長度了。
如上圖中,我們可以用公式“=LEN(D2)”計算總的字符個數,然後減去公式“=LENB(D2)-LEN(D2)”計算出的漢字的個數,就得到了除漢字外的字符的格式(包含空格)。然後用RIGHT函數截取這一段字符串。
好啦,現在我們就可以把前面所有的知識點結合起來進行計算了。
上圖中,我用多個函數進行嵌套使用組合成了下面的公式:“=TRIM(IF(ISNUMBER(INT(LEFT(D2,1))),LEFT(D2,LEN(D2)-(LENB(D2)-LEN(D2))),RIGHT(D2,LEN(D2)-(LENB(D2)-LEN(D2)))))”
好啦,今天就說到這裡了,有什麼疑問可以留言給我。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!