二維碼 購物車
部落窩在線教育歡迎您!

Excel中判斷單元格字符是否包含數(shù)字和英文的方法

?

作者:賦春風(fēng)來源:部落窩教育發(fā)布時間:2020-07-07 17:02:30點擊:23090

分享到:
0
收藏    收藏人氣:0人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

哈嘍,大家好!如何快速判斷單元格字符是否包含數(shù)字和字母呢?在規(guī)范編碼、密碼、用戶名的時候,我們經(jīng)常要查證某一類字符串是否包含數(shù)字、英文、數(shù)字與英文的組合,甚至字符串的開頭是否是數(shù)字等。很簡單,利用Code、Char、Find、Search文本函數(shù)搭配Count函數(shù)即可解決這個問題。另外,關(guān)于轉(zhuǎn)換字母大小寫、刪除字符前后兩端的空格等,我們今天也會介紹。趕緊來看看吧!

 

文本字符是Excel中除了數(shù)字以外的另一種非常常用的數(shù)據(jù)類型,Excel也提供了大量的文本函數(shù)。利用這些函數(shù)我們可以用來判斷字符串開頭是否為數(shù)字、字符串是否同時包含了數(shù)字和英文、字符串是否包含了指定字符,可以用來轉(zhuǎn)換英文字母的大小,可以用來刪除字符串前后空格。下面咱們一起來學(xué)習(xí)下。

 

 

1.判斷字符串開頭是否為數(shù)字

 

CODE()函數(shù)可以將Excel中任意字符串中的第一個字符轉(zhuǎn)換為ANSI字符集中對應(yīng)的數(shù)字代碼,然后可以通過判斷數(shù)字代碼的大小,來判斷字符的類型。CODE()函數(shù)的語法結(jié)構(gòu)為:CODE(TEXT),CODE()函數(shù)僅需要一個必選參數(shù)TEXT,該參數(shù)代表了要轉(zhuǎn)換為數(shù)字代碼的字符。

 

例子,某網(wǎng)站服務(wù)器數(shù)據(jù)變更,新服務(wù)要求會員名不能以數(shù)字開頭,如果會員是以數(shù)字開頭,則會被打上無效標(biāo)志“×”。

 

 

 

通過查詢ANSI字符集可知,數(shù)字0-9對應(yīng)的數(shù)字編碼是48-57。會員名要求不能以數(shù)字開頭,那么只需要將會員名稱的第一個字符轉(zhuǎn)換為數(shù)字編碼,只要這個數(shù)值在48-57之間,就被作上“×”標(biāo)志。可以在C2單元格輸入公式“=IF(AND(CODE(A2)>=48,CODE(A2)<=57),"×","")”,將公式向下填充到C23單元格,判斷所有會員名是否有效。

 

 

該公式包含了3個函數(shù),其中最內(nèi)層的CODE()函數(shù)用于返回字符串的數(shù)字編碼。這里我們直接將A2單元格作為其參數(shù),也能獲得正確結(jié)果,原因在于當(dāng)CODE()函數(shù)的text參數(shù)為一個字符串時,函數(shù)僅返回字符串中第一個字符的數(shù)字編碼。

 

2.隨意轉(zhuǎn)換字母的大小寫

 

英文字母有大小寫之分,如果要通過函數(shù)對英文字母的大小寫進(jìn)行轉(zhuǎn)換,可以使用UPPER()函數(shù)和LOWER()函數(shù)。

 

如果要求英文名稱書寫必須規(guī)范,如輸入單詞時,首字母需要大寫,可以用PROPER()函數(shù)自動將小寫的首字母轉(zhuǎn)換為大寫。以上三個函數(shù)均包含一個必選參數(shù)text,text代表要進(jìn)行編輯的字符。具體功能如下:

 

?  UPPER()函數(shù)用于將給定字符串中所有英文小寫轉(zhuǎn)換為英文大寫。

?  LOWER()函數(shù)用于將給定字符串中所有英文大寫轉(zhuǎn)換為英文小寫。

?  PROPER()函數(shù)用于將小寫字符的首字母轉(zhuǎn)換為大寫。如果字符串不包含英文,不進(jìn)行轉(zhuǎn)換,只有當(dāng)字符串中包含英文單詞,且單詞首字母不是大寫時,才能看到PROPER()函數(shù)的效果。

 

通過下面例子,可以輕松了解三個函數(shù)的用法。

 

 


3.字符串中是否同時包含了數(shù)字和英文

 

如果需要在一個文本中查找另一個文本的位置(區(qū)分字符的大小寫),那么可以使用FIND()函數(shù)。

 

FIND()函數(shù)可以在指定的字符串中查找給定的字符(區(qū)分字符的大小寫),并返回被查找字符在原字符串中首次出現(xiàn)的位置。FIND()函數(shù)的語法格式為:

 

FIND(find_text,within_text,[start_num])

 

從函數(shù)的語法格式中可以得知,FIND()函數(shù)包含兩個必選參數(shù)find_textwithin_text,以及一個可選參數(shù)start_num,各參數(shù)意義為:

 

?  find_text:要在原字符串中查找的字符或字符串。

?  within_text:要在其中查找find_text字符串的原字符串。

?  start_num:指定要從within_text的第幾個字符開始查找,如果省略此參數(shù),則從第一個字符開始查找。

 

舉個例子,某網(wǎng)站的注冊密碼至少由字母和數(shù)字兩部分組成,否則需要提示修改密碼。

 

分析思路:要判斷密碼中是否包含數(shù)字和字母,就需要在原密碼字符串中分別查找數(shù)字和字母,如果兩者都能找到,密碼就不用更改,否則提示“請更改密碼”。要精確查找某個字符,可以使用FIND()函數(shù)。由于需要查找字符串中是否包含數(shù)字和字母,我們可以使用CHAR()函數(shù)結(jié)合ROW()函數(shù)生成要查找的字符,并對查找的結(jié)果進(jìn)行統(tǒng)計。如果找到,那么統(tǒng)計結(jié)果必定大于或等于1,若沒有找到,那么統(tǒng)計結(jié)果必定等于0。通過AND()函數(shù)將兩次查找的結(jié)果進(jìn)行結(jié)合,從而判斷密碼是否需要修改。

 

 

具體步驟:

 

E2單元格中輸入數(shù)組公式“{=IF(AND(COUNT(FIND(CHAR(ROW($48:$57)),C2))>=1,COUNT(FIND(CHAR(ROW($65:$122)),C2))>=1),"","請更改密碼")}”,按“Ctrl+Shift+Enter”組合鍵結(jié)束數(shù)組公式。雙擊E2單元格右下角的自動填充柄,向下填充公式至E41單元格,判斷其它用戶的密碼是否需要修改。

 

 

公式看似比較復(fù)雜,但還是比較好理解的。首先公式通過“ROW($48:$57)”返回一個48-57的自然數(shù)序列,并用CHAR()函數(shù)返回該序列數(shù)字對應(yīng)的字符,得到0-9的常量數(shù)組。然后通過FIND()函數(shù)在C2單元格中分別查找0-9的數(shù)字,并生成一個數(shù)組,當(dāng)C2中不包含查找的數(shù)字,會產(chǎn)生#VALUE!錯誤,再用COUNT()函數(shù)對這個數(shù)組進(jìn)行統(tǒng)計,計算其中非錯誤值的個數(shù),最后判斷結(jié)果是否大于等于1。這就是公式紅色部分的內(nèi)容,藍(lán)色部分與其大致相同,只是后部分用“CHAR(ROW($65:$122))”返回包含所有英文字母和部分符號的數(shù)組。當(dāng)AND()函數(shù)的兩個部分都返回TURE時,通過IF()函數(shù)返回一個空值,否則返回文本“請更改密碼”。


   4.字符串中是否包含了指定字符

 

SEARCH()函數(shù)可以在指定的字符串中查找給定的字符(區(qū)分字符的大小寫),并返回被查找字符在原字符串中首次出現(xiàn)的位置。SEARCH()函數(shù)的語法格式為:

 

SEARCH(find_text,within_text,[start_num])

 

從函數(shù)的語法格式中,SEARCH()函數(shù)包含兩個必選參數(shù)find_textwithin_text,以及一個可選參數(shù)start_num,各參數(shù)意義和FIND函數(shù)相同。

 

SEARCH()函數(shù)在查找字符串的過程中,不會區(qū)分英文字符的大小寫,并且在find_text參數(shù)中,還可以使用通配符問號“?”和星號“*”,其中問號代表任意一個字符,星號代表任意多個字符。如果要查找實際的問號和星號,則需要在該字符前鍵入波形符“~”。

 

舉個例子,某公司現(xiàn)在要統(tǒng)計出擅長PPT的員工數(shù)量,由于員工的書寫不規(guī)范(同一單詞有大寫也有小寫),并都在同一個單元格中,我們可以用SEARCH()函數(shù)進(jìn)行查找,將查找的結(jié)果分配到一個數(shù)組中,再統(tǒng)計此數(shù)組中非錯誤值的數(shù)量。

 

 

具體步驟:在H1單元格輸入數(shù)組公式“{=COUNT(SEARCH(F1,C2:C41))}”,按“Ctrl+Shift+Enter”組合鍵結(jié)束數(shù)組公式。

 

 

SEARCH(F1,C2:C41)”部分表示在“C2:C41”單元格區(qū)域中搜索F1單元格的值,如果找到,會返回一個數(shù)值,否則返回錯誤值,即得到一個由數(shù)字和錯誤值組成的數(shù)組,最后使用COUNT()函數(shù)對此數(shù)組中非錯誤值進(jìn)行統(tǒng)計,得到所需結(jié)果。

 

5.刪除文本中前后兩端的空格

 

某些字符串中可能包含有不需要的空格,為了字符串的精確性,可以通過TRIM()函數(shù)將其刪除。該函數(shù)語法結(jié)構(gòu)為TRIM(text)text表示要處理的文本字符串。

 

例如從網(wǎng)站導(dǎo)入的日期數(shù)據(jù)中包含空格,EXCEL就會自動將日期識別為文本,此時可以通過TRIM()函數(shù)進(jìn)行處理。

 

由于下圖中A列的日期前面包含空格,導(dǎo)致EXCEL不能正確識別,我們可以在B列通過TRIM()函數(shù)刪除A列對應(yīng)單元格字符串前的空格,并以乘1的形式將其轉(zhuǎn)化為代表日期的序列,將該區(qū)域設(shè)置為日期類型即可正確顯示。

 

 

最后,我們再鞏固下,找出字符對應(yīng)的數(shù)字編碼用CODE()函數(shù),隨意轉(zhuǎn)換字母的大小寫用UPPER()、LOWER()PROPER()函數(shù),查找文本的位置用FIND()、SEARCH()函數(shù),刪除文本前后兩端的空格用TRIM()函數(shù),通過這些函數(shù)您掌握了字符串的秘密沒?當(dāng)然了,文本函數(shù)還有很多,春風(fēng)在這里只是拋磚引玉,小伙伴們,還有別的什么想法,歡迎留言。

 

本文配套的練習(xí)課件請加入QQ群:1043683754下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號,可隨時隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

TEXT函數(shù)的應(yīng)用①《如果函數(shù)有職業(yè),TEXT絕對是變裝女皇!》

FIND函數(shù)的應(yīng)用《Excel中的最強(qiáng)助攻——FIND函數(shù)

TEXT函數(shù)常用套路《5分鐘,學(xué)會文本函數(shù)之王——TEXT的常用套路

TEXTSUMPRODUCT函數(shù)的應(yīng)用《TEXT和SUMPRODUCT強(qiáng)強(qiáng)聯(lián)合,只為解決一個“微不足道”的編號問題??