編按:哈嘍,大家好!如何快速判斷單元格字符是否包含數字和字母呢?在規範編碼、密碼、用戶名的時候,我們經常要查證某一類字符串是否包含數字、英文、數字與英文的組合,甚至字符串的開頭是否是數字等。很簡單,利用Code、Char、Find、Search文本函數搭配Count函數即可解決這個問題。另外,關於轉換字母大小寫、刪除字符前後兩端的空格等,我們今天也會介紹。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
文本字符是Excel中除了數字以外的另一種非常常用的數據類型,Excel也提供了大量的文本函數。利用這些函數我們可以用來判斷字符串開頭是否為數字、字符串是否同時包含了數字和英文、字符串是否包含了指定字符,可以用來轉換英文字母的大小,可以用來刪除字符串前後空格。下面咱們一起來學習下。
1.判斷字符串開頭是否為數字
CODE()函數可以將Excel中任意字符串中的第一個字符轉換為ANSI字符集中對應的數字代碼,然後可以通過判斷數字代碼的大小,來判斷字符的類型。CODE()函數的語法結構為:CODE(TEXT),CODE()函數僅需要一個必選參數TEXT,該參數代表了要轉換為數字代碼的字符。
例子,某網站伺服器數據變更,新服務要求會員名不能以數字開頭,如果會員是以數字開頭,則會被打上無效標誌「×」。
通過查詢ANSI字符集可知,數字0-9對應的數字編碼是48-57。會員名要求不能以數字開頭,那麼只需要將會員名稱的第一個字符轉換為數字編碼,只要這個數值在48-57之間,就被作上「×」標誌。可以在C2單元格輸入公式「=IF(AND(CODE(A2)>=48,CODE(A2)<=57),"×","")」,將公式向下填充到C23單元格,判斷所有會員名是否有效。
該公式包含了3個函數,其中最內層的CODE()函數用於返回字符串的數字編碼。這裡我們直接將A2單元格作為其參數,也能獲得正確結果,原因在於當CODE()函數的text參數為一個字符串時,函數僅返回字符串中第一個字符的數字編碼。
2.隨意轉換字母的大小寫
英文字母有大小寫之分,如果要通過函數對英文字母的大小寫進行轉換,可以使用UPPER()函數和LOWER()函數。
如果要求英文名稱書寫必須規範,如輸入單詞時,首字母需要大寫,可以用PROPER()函數自動將小寫的首字母轉換為大寫。以上三個函數均包含一個必選參數text,text代表要進行編輯的字符。具體功能如下:
? UPPER()函數用於將給定字符串中所有英文小寫轉換為英文大寫。
? LOWER()函數用於將給定字符串中所有英文大寫轉換為英文小寫。
? PROPER()函數用於將小寫字符的首字母轉換為大寫。如果字符串不包含英文,不進行轉換,只有當字符串中包含英文單詞,且單詞首字母不是大寫時,才能看到PROPER()函數的效果。
通過下面例子,可以輕鬆了解三個函數的用法。
3.字符串中是否同時包含了數字和英文
如果需要在一個文本中查找另一個文本的位置(區分字符的大小寫),那麼可以使用FIND()函數。
FIND()函數可以在指定的字符串中查找給定的字符(區分字符的大小寫),並返回被查找字符在原字符串中首次出現的位置。FIND()函數的語法格式為:
FIND(find_text,within_text,[start_num])
從函數的語法格式中可以得知,FIND()函數包含兩個必選參數find_text和within_text,以及一個可選參數start_num,各參數意義為:
? find_text:要在原字符串中查找的字符或字符串。
? within_text:要在其中查找find_text字符串的原字符串。
? start_num:指定要從within_text的第幾個字符開始查找,如果省略此參數,則從第一個字符開始查找。
舉個例子,某網站的註冊密碼至少由字母和數字兩部分組成,否則需要提示修改密碼。
分析思路:要判斷密碼中是否包含數字和字母,就需要在原密碼字符串中分別查找數字和字母,如果兩者都能找到,密碼就不用更改,否則提示「請更改密碼」。要精確查找某個字符,可以使用FIND()函數。由於需要查找字符串中是否包含數字和字母,我們可以使用CHAR()函數結合ROW()函數生成要查找的字符,並對查找的結果進行統計。如果找到,那麼統計結果必定大於或等於1,若沒有找到,那麼統計結果必定等於0。通過AND()函數將兩次查找的結果進行結合,從而判斷密碼是否需要修改。
具體步驟:在E2單元格中輸入數組公式「{=IF(AND(COUNT(FIND(CHAR(ROW($48:$57)),C2))>=1,COUNT(FIND(CHAR(ROW($65:$122)),C2))>=1),"","請更改密碼")}」,按「Ctrl+Shift+Enter」組合鍵結束數組公式。雙擊E2單元格右下角的自動填充柄,向下填充公式至E41單元格,判斷其它用戶的密碼是否需要修改。
公式看似比較複雜,但還是比較好理解的。首先公式通過「ROW($48:$57)」返回一個48-57的自然數序列,並用CHAR()函數返回該序列數字對應的字符,得到0-9的常量數組。然後通過FIND()函數在C2單元格中分別查找0-9的數字,並生成一個數組,當C2中不包含查找的數字,會產生#VALUE!錯誤,再用COUNT()函數對這個數組進行統計,計算其中非錯誤值的個數,最後判斷結果是否大於等於1。這就是公式紅色部分的內容,藍色部分與其大致相同,只是後部分用「CHAR(ROW($65:$122))」返回包含所有英文字母和部分符號的數組。當AND()函數的兩個部分都返回TURE時,通過IF()函數返回一個空值,否則返回文本「請更改密碼」。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
4.字符串中是否包含了指定字符
SEARCH()函數可以在指定的字符串中查找給定的字符(不區分字符的大小寫),並返回被查找字符在原字符串中首次出現的位置。SEARCH()函數的語法格式為:
SEARCH(find_text,within_text,[start_num])
從函數的語法格式中,SEARCH()函數包含兩個必選參數find_text和within_text,以及一個可選參數start_num,各參數意義和FIND函數相同。
SEARCH()函數在查找字符串的過程中,不會區分英文字符的大小寫,並且在find_text參數中,還可以使用通配符問號「?」和星號「*」,其中問號代表任意一個字符,星號代表任意多個字符。如果要查找實際的問號和星號,則需要在該字符前鍵入波形符「~」。
舉個例子,某公司現在要統計出擅長PPT的員工數量,由於員工的書寫不規範(同一單詞有大寫也有小寫),並都在同一個單元格中,我們可以用SEARCH()函數進行查找,將查找的結果分配到一個數組中,再統計此數組中非錯誤值的數量。
具體步驟:在H1單元格輸入數組公式「{=COUNT(SEARCH(F1,C2:C41))}」,按「Ctrl+Shift+Enter」組合鍵結束數組公式。
「SEARCH(F1,C2:C41)」部分表示在「C2:C41」單元格區域中搜索F1單元格的值,如果找到,會返回一個數值,否則返回錯誤值,即得到一個由數字和錯誤值組成的數組,最後使用COUNT()函數對此數組中非錯誤值進行統計,得到所需結果。
5.刪除文本中前後兩端的空格
某些字符串中可能包含有不需要的空格,為了字符串的精確性,可以通過TRIM()函數將其刪除。該函數語法結構為TRIM(text),text表示要處理的文本字符串。
例如從網站導入的日期數據中包含空格,EXCEL就會自動將日期識別為文本,此時可以通過TRIM()函數進行處理。
由於下圖中A列的日期前面包含空格,導致EXCEL不能正確識別,我們可以在B列通過TRIM()函數刪除A列對應單元格字符串前的空格,並以乘1的形式將其轉化為代表日期的序列,將該區域設置為日期類型即可正確顯示。
最後,我們再鞏固下,找出字符對應的數字編碼用CODE()函數,隨意轉換字母的大小寫用UPPER()、LOWER()和PROPER()函數,查找文本的位置用FIND()、SEARCH()函數,刪除文本前後兩端的空格用TRIM()函數,通過這些函數您掌握了字符串的秘密沒?當然了,文本函數還有很多,春風在這裡只是拋磚引玉,小夥伴們,還有別的什麼想法,歡迎留言。學習更多技巧,請收藏關注部落窩教育excel圖文教程。
****部落窩教育-excel轉換字母大小寫****
原創:賦春風/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育