葛東林 山東省泰安市泰安第一中學
日常工作與辦公中,經常需要對一些字符串或者文字分割,以便取出需要的內容,如果手工分割,不但費時費力,而且效率太低,尤其是對于大量需要分割的字符串來說,手工分割幾乎不可取,excel中封裝了眾多函數,其中就有一些用于字符串操作的函數,通過使用excel中的字符串相關的函數可以快速高效地對字符串進行分割,給日常工作需要帶來了極大的便利[1][2][3]。
與字符串分割相關的幾個函數主要有以幾個:LEFT(),RIGHT(),MID(),FIND(),LEN(),IFERROR(), 下 面 對其使用分別介紹[4][5][6]。
LEFT從文本字符串的第一個字符開始返回指定個數的字符。語法
LEFT(text,[num_chars]),該函數語法具有下列參數:
Text必需。包含要提取的字符的文本字符串。
num_chars可選。指定要由LEFT提取的字符的數量。
Num_chars必須大于或等于零。
如果num_chars大于文本長度,則LEFT返回全部文本。
如果省略num_chars,則假定其值為1。
示例:LEFT
圖1 left函數使用
如上圖,在A1中輸入morning單詞,在B1中輸入=left(A1,4)按回車鍵,則·B2中得到的結果為morn四個字母。
Excel中的MID函數可以用來從指定的字符串中截取出指定數量字符的函數。MID函數的形式如下:MID(text,start_num,num_chars),其中:、
text是一串我們想從中截取字符的“字符串“。
start_num是一個數字,是指從“字符串”的左邊第幾位開始截取。
num_chars也是數字,是指從start_num開始,向右截取的長度。
圖2 mid函數使用
如圖2所示,在A1中輸入student單詞,在B1中輸入=mid(A1,2,3)按回車鍵,則·B2中得到的結果為tud三個字母。
right函數語法:
right(text,num_chars)
其中text表示要截取的字符串。
num_chars表示截取的字符的數量。
圖3 right函數使用
如圖3所示,在A1中輸入student單詞,在B1中輸入=right(A1,2)按回車鍵,則·B2中得到的結果為nt兩個字母。
find函數在excel中是一個很常見的函數,此函數是一個查找函數,用于查找某一個字符在單元格中的位置,所以find函數返回一個位置序列號(數字)。FIND函數在excel中很少單獨使用,一般會和其他函數結合在一起使用,起到定位作用。find函數語法為:
FIND(find_text,within_text,start_num)
其中:
Find_text表示我們要查找的字符串,
within_text表示要查找的區域,
start_num指定開始進行查找的字符數。比如start_num為2,則從單元格內第2個字符開始查找關鍵字。如果忽略start_num,則默認為1。
圖4 find函數使用
如圖4所示,在A1中輸入student單詞,在B1中輸入=FIND("u",A1,2)按回車鍵,則·B2中得到的結果為3。
len函數是計數字符串中所有字符的個數。
語法:
LEN(text)
LLEN函數語法具有下列參數:
Text必需。要查找其長度的文本??崭駥⒆鳛樽址M行計數。
圖5 len函數使用
如圖5所示,在A1中輸入student單詞,在B1中輸入=LEN(A1)按回車鍵,則·B2中得到的結果為7。
下面以一組行政區劃字符串為例介紹如何綜合運用相關函數分割出用戶需要的字符串。如圖6所示,表格中為B2列為沒有分隔的行政區劃,現在需要按照省、市、縣、鄉為單位把“行政區劃”列中的字符串分開,并填寫到C、D、E、F列中(圖7所示)。
圖6 待分割字行政區劃符串
圖7 分割要求
像這樣的工作如果數據少的話可以手工分割,但是如果把全國實際區劃從excel表中分割(到鄉鎮),光數據就有幾萬條,顯然手工分割不可取,這是可以根據數據的實際情況,用excel中的相關函數進行批量分割,從而達到快速分割字符的目的。
分析表中的數據,省級區劃中有省、市、區三類;地市級區劃中有市、區、盟、州幾類;縣級區劃中有縣、市、區、旗幾種;而鄉鎮的區劃名稱就更多。
如圖8所示,在C2單元格里輸入:
=LEFT(B2,IFERROR(FIND("省 ",B2,1),FIND("市 ",B2,1)))回車,既可以把北京市取出來,然后把鼠標放在C2單元格右下角,出現黑十字圖標時,按住鼠標左鍵往下拖動到16行,既可以把其他行的省級行政區劃取出來。然后把光標定到C17單元格,輸入:=LEFT(B17,IFERROR(FIND("區 ",B17,1),FIND("省",B17,1))),同樣方法鼠標放到右下角出現黑十字時左鍵拖動下拉到結束,即可把自治區與剩余省份取出來,如圖9所示。
圖9 省級區劃分割結果
如圖7所示,對D2-D6,由于沒有地市級劃分,不用處理。在D7中輸入:=MID(B7,FIND("省",B7,1)+1,(FIND("市",B7,1)-FIND("省",B7,1))),然后鼠標放在該單元格右下角,出現黑十字時按住鼠標左鍵往下拖動到D16,則即可完成地市區劃分割;同樣方法,在D17單元格輸入:=MID(B17,FIND("區 ",B17,1)+1,(FIND(" 市 ",B17,1)-FIND(" 區 ",B17,1))),同樣方法下拉到D19;在D20單元格輸入:=MID(B20,FIND("區 ",B20,1)+1,(FIND("盟 ",B20,1)-FIND("區 ",B20,1)))下拉到D21;在D22D單元格中輸入:=MID(B22,FIND("省 ",B22,1)+1,(FIND("州 ",B22,1)-FIND("省 ",B22,1))),下拉到D23,便可將地市區劃分割出來,如圖10所示。
圖10 地市級區劃分割結果
類似方法,在E2單元格輸入:=MID(B2,FIND("市",B2,1)+1,(IFERROR(FIND(" 縣 ",B2,1),FIND(" 區 ",B2,1))-FIND("市",B2,1))),下拉到E6。在E7單元格輸入:=MID(B7,FIND(" 市 ",B7,1)+1,(IFERROR(FIND(" 區 ",B7,(FIND(" 市 ",B7,1)+1)),IFERROR(FIND(" 縣 ",B7,(FIND("市 ",B7,1)+1)),FIND("市 ",B7,(FIND("市 ",B7,1)+1))))-FIND("市 ",B7,1))),下拉到 E16。.在 E17 單元格輸入:=MID(B17,FIND("市",B17,1)+1,FIND("區",B17,FIND("市 ",B17,1)+1)-FIND("市 ",B17,1)), 下 拉到E18。在E19單元格輸入:=MID(B19,FIND("市",B19,1)+1,FIND("旗 ",B19,FIND("市 ",B19,1)+1)-FIND("市",B19,1))。 在 E20輸 入:=MID(B20,FIND("盟 ",B20,1)+1,((FIND("旗 ",B20,1))-FIND("盟 ",B20,1))), 下 拉到 E21。在 E22輸入:=MID(B22,FIND("州 ",B22,1)+1,(FIND("縣",B22,1))-FIND("州",B22,1)),下拉到E23完成所有縣級區劃分割。如圖11所示。
圖11 縣級區劃分割結果
以F7為例,在該單元格中輸入:=RIGHT(B7,LEN(B7)-FIND("區 ",B7,FIND("市 ",B7,1)+1)), 便 可把鄉鎮區劃分離出來,如果輸入:=RIGHT(B7,(LEN(B7)-IFERROR(FIND("區 ",B7,(FIND("市 ",B7,1)+1)),IFERROR(FIND("縣 ",B7,(FIND("市 ",B7,1)+1)),FIND("市",B7,(FIND("市",B7,1)+1)))))),然后用前面類似的方法下拉到F16,便可以一次全部分割出F7到F16的所有鄉鎮區劃。用類似的辦法可以把其他鄉鎮區劃分割出來,最終結果如圖12所示。
圖12 鄉鎮區劃分割結果
Excel中內置了大量的函數,利用其中部分函數的組合可以從較復雜的字符串中分割出用戶需要的字符串或者字符,然后利用Excel的批量處理功能達到對字符串進行快速高效處理的目的。本文詳細介紹了excel中LEFT、RIGHT、MID、IFERROR、FIND、LEN等幾個常用函數的使用以及如何利用他們從行政區劃字符串中把各級行政區劃分割開來的方法,讀者可以舉一反三,通過文章中介紹的處理類似問題的方法解決其他工作中遇到的類似問題,從而達到提高工作效率,減輕工作量的目的。
[1]賈小軍,童小素.辦公自動化高級應用(Office2010)[M].北京:北京郵電大學出版社,2015.
[2]葛平俱,孫永香.大學計算機實踐教程[M].北京:人民郵電出版社,2017.
[3]雷凌.Office2010高級應用案例解讀教程[M].北京:北京郵電大學出版社,2015.
[4]黃少玲.探析Excel函數在數據處理中的應用[J].電腦編程技巧與維護,2017,(05):58-60.
[5]王華偉,楊云.Excel函數在中職教務管理中的應用技巧[J].電腦知識與技術,2015,11(25):96-98.
[6]陳順立.基于EXCEL函數應用的工資管理案例分析與實踐[J].電腦學習,2010,(03):121-124.