Excel基礎知識-文字之長度函式和提取函式

Excel基礎知識-文字之長度函式和提取函式

在Excel的操作中,我們經常處理一些複雜的文字,文字可能包括數字,字母,漢字,標點符號,有時候需要從中提取一些數字,大寫字母或者統計內容項,要完成這些功能,通常離不開兩個函式一個LEN和LENB函式,我們就先來聊聊這兩個函式用法和區別吧。

LEN和LENB

功能:

統計引數的長度,引數可以為常量,表示式,名稱,引用單元格;LEN返回是文字長度,有多少字元長度為幾而LENB返回的是文字位元組長度,比如一箇中文字元包括標點符號都是兩個位元組,那麼問題來了,為什麼中文字元佔兩個位元組?

我們知道日常在計算機中使用的所有數字,字母,符號,漢字都是用二進位制的數字儲存的,而計算機也是國外人設計的,他們在設計之初為了滿足他們的語言特點就是規定了基礎編碼系統為ASCII編碼,最初為7位數字和高位校驗位來表示所有的大小字母數字以及常用符號,控制符,通訊專用符(儲存範圍:0-127);後基於X86的系統支援8位ASCII,也就現在的1-255,一個位元組為8二進位制數(2的8次方減1),它們就有了統一的名稱叫單位元組字元;再儲存其他的字元需要增加一個位元組,所以其它的字元都叫雙位元組字元,比如漢字,全形下的標點符號,其他語言的文字字元。

下面我們一起看看這兩個函式的簡單用法,結構圖如下:

Excel基礎知識-文字之長度函式和提取函式

LEN和LENB函式的結構圖示意圖

看完結構圖是不是覺得,你還是說說怎麼用吧?好的,我的問題是“我很loveyou”中,如果用上面的兩個函式計算出英文的長度是幾?漢字的長度是幾?你要是直接數數那就賴皮啦,我們一起看看用計算機的方式來得出結果吧!其實就是簡答的數學題,我們轉化一下條件:假設漢字有X個,英文為Y個,我們可以得出兩個等式分別為 X+Y=len(“我很loveyou”),2X+Y=lenb(“我很loveyou”);X=lenb(“我很loveyou”)-len(“我很loveyou”),Y=2*len(“我很loveyou”)-lenb(“我很loveyou”);有了公式,假設“我很loveyou”在單元格A1中,統計漢字個數公式:=lenb(A1)-len(A1)等於2;統計英文字母個數的公式:=2*len(A1)-lenb(A1)是不是等於7呢?

提取函式

說到文字的提取函式,應該有六個,分為三對,分別為LEFT,MID,RIGHT,LEFTB,MIDB,RIGHTB;

LEFT函式和RIGHT函式結構比較接近,兩者不同的就是方向的差異,LEFT是從左1位開始向後擷取為第二引數長度的字串,而RIGHT則是從右末開始向前擷取長度為第二引數的長度的字串;需注2點:1。文字引數為錯誤碼時會直接返回錯誤碼(文字為引用單元格或函式時,處理需注意考慮錯誤編碼的情況);2。數字引數在不輸入情況下,預設為1,如引數>len(文字),則返回整個文字;具體結構圖如下:

Excel基礎知識-文字之長度函式和提取函式

LEFT函式和RIGHT函式的結構圖

Excel基礎知識-文字之長度函式和提取函式

leftb函式和rightb函式結構圖

至於MID函式在

Excel基礎知識-詳解隨機點名器

有過詳細介紹,這裡就不過多贅述了!接下來就要看看LEFTB,MIDB,RIGHTB函式的情況,其他的功能上跟沒有B的函式沒有什麼差別,主要的差別是在後面的“數字”部分,這裡的引數的數字為位元組數,因為單位元組字元和雙位元組字元的區別,同樣的引數擷取的長度就有所不同,下面我們親身驗證一下這些細微的不同吧!

而MIDB函式只是引數跟上兩個函式不同,所以單獨拿出來說一下,先上結構圖吧,

Excel基礎知識-文字之長度函式和提取函式

MIDB函式的結構圖

這裡需要說明“開始位元組”和“位元組數”這兩引數,由於是位元組數,特別注意在填寫引數要注意,填寫不當,就會出現你意向不到的結果,下面就仔細確認一下之前,先對字串的儲存,其實字串每個字元後面會跟一個分隔符,長度為一個位元組,Excel為了對字串的長度進行精準顯示,都在程式處理中會過濾掉中間這些分隔符,而末尾的分隔符會被保留,這樣話的實際每個雙字元的字元佔用三個位元組,帶著這個認識再看是不是就容易理解LEFTB函式和RIGHTB函式,文字引數是雙位元組時,我們輸入3,實際匹配出1個漢字和一個分隔符,當輸入4時,會自動過濾掉中間的佔位符,就返回了2個漢字,輸入5時,依然會匹配出2個漢字一個分隔符。

“分隔符”我怎麼沒有見過,你不會是騙人的吧?哪我就來證明一下,我說的你看不見的分隔符確實存在,為了方便檢測結果,做了一個小的例子,使用的函式為MIDB,檢測一下它的存在!資料單元格為A2,內容為:你沒有說謊嗎?,開始位元組在B2單元格,位元組數在C2單元格,D2=MIDB(A2,B2,C2)回車,為了讓分隔符“顯形”,我對D2單元格的文字設定了下劃線,好了一起見證奇蹟吧:效果圖下:

Excel基礎知識-文字之長度函式和提取函式

分隔符顯示效果圖

你可以從圖中看出分隔符的存在以及位置,是不是你平時都沒有注意到這些呢?這些有用嗎?如果你在使用MIDB函式擷取文字的時候,就需要注意這個問題,如果你擷取N個漢字,如果位元組數填2×N就會出現少一漢字的情況,解決這類問題的方法就是擷取位元組數需2×N+1,就能擷取完整的漢字啦,或首或尾都會保留一個分隔符(注:分隔符在字元緊跟其後,這也是為什麼當開始位元組數為1,不會出現分隔的原因!分隔符也不參與字元位元組長度的計算)。

今天的文章就寫到這兒了,希望你在讀文的時候,有所收穫!哪是我最開心的事,希望你有時間也要多多實踐,如果發現文中的紕漏,也歡迎你指正,在進步的路上我們一起前行。時光流轉,來日方長,期待與螢幕前的你下文再見!