我們上文學(xué)習(xí)了:
1昌屉,字符串的合并
2钙蒙,字符串的長(zhǎng)度
3,字符串的查找
4间驮,字符串的替換
5躬厌,字符串的截取
今天繼續(xù)學(xué)習(xí):
6,字母的大小寫
7蜻牢,字符串的清洗
8烤咧,字符串的重復(fù)
9偏陪,字符串的全/半角轉(zhuǎn)換
10抢呆,字符串的格式化
6 字母大小寫
如下圖所示,需要將A列的數(shù)據(jù)在B列轉(zhuǎn)換為大寫笛谦,再將B列的數(shù)據(jù)在C列轉(zhuǎn)換為小寫抱虐,在將C列的數(shù)據(jù)轉(zhuǎn)換為首字母大寫……
UPPER函數(shù)可以將小寫字母轉(zhuǎn)大寫,B2單元格公式:
=UPPER(A2)
LOWER函數(shù)可以將大寫字母轉(zhuǎn)小寫饥脑,C2單元格公式:
=LOWER(B2)
PROPER函數(shù)可以只將首字母轉(zhuǎn)大寫恳邀,D2單元格公式:
=PROPER(C2)
上一章的時(shí)候我們講過(guò)懦冰,SUBSTITUTE函數(shù)區(qū)分字母大小寫。如下圖所示的數(shù)據(jù)谣沸,需要將A列存在的Excel使用函數(shù)全部替換掉刷钢,無(wú)論大小寫,怎么辦呢乳附?
B18單元格内地,公式如下:
=SUBSTITUTE(UPPER(A18),"EXCEL","")
先使用UPPER函數(shù)將A9的值轉(zhuǎn)換為大寫,再使用SUBSTITUTE將大寫的EXCEL替換為空白赋除。
當(dāng)然阱缓,也可以使用以下公式:
=SUBSTITUTE(LOWER(A18),"excel","")
但,這兩個(gè)函數(shù)都有個(gè)問(wèn)題举农,會(huì)改變?cè)醋址帜傅拇笮懢U耄热缟蠄DB19單元格。如果對(duì)源字符串字母大小寫有區(qū)分颁糟,更推薦使用以下公式:
=IFERROR(SUBSTITUTE(A19,MID(A19,SEARCH("excel",A19),LEN("excel")),""),A19)
公式嵌套比較多航背,但其實(shí)很簡(jiǎn)單。
MID(A18,SEARCH("excel",A18),LEN("excel"))部分棱貌,正如我們上一章所說(shuō)沃粗,SEARCH不區(qū)分字母大小寫,它可以正確尋找到excel出現(xiàn)的位置键畴,MID函數(shù)籍此取出該部分的字符串最盅。
然后使用SUBSTITUTE函數(shù)將MID返回的結(jié)果替換成空,最后使用IFERROR屏蔽錯(cuò)誤值起惕。
7 字符串清洗
很多時(shí)候涡贱,我們的數(shù)據(jù)來(lái)自網(wǎng)頁(yè),或者某個(gè)系統(tǒng)惹想,這時(shí)候數(shù)據(jù)里往往有些多余的可見或不可見的字符问词。處理這些臟數(shù)據(jù)最常用的函數(shù)有兩個(gè),TRIM和CLEAN嘀粱。
TRIM函數(shù)可以清除字符串前激挪、后的空格,并將字符中間連續(xù)出現(xiàn)的多個(gè)空格保留一個(gè)锋叨。
如下圖所示垄分,需要將A列數(shù)據(jù)整理成B列。
B2輸入以下公式即可:
=TRIM(B2)
..........................................
CLEAN函數(shù)在英文里是清潔的意思娃磺,它可以清除字符串中含有的當(dāng)前操作系統(tǒng)無(wú)法打印的字符薄湿。外部來(lái)源導(dǎo)入的數(shù)據(jù),經(jīng)常含有此類字符。
如下圖所示豺瘤,A列的日期是從某個(gè)系統(tǒng)導(dǎo)出的數(shù)據(jù)吆倦,無(wú)法直接使用,可以借助CLEAN函數(shù)進(jìn)行清洗坐求。
8 字符串重復(fù)
前段時(shí)間有一句很流行的話:愛你3000遍蚕泽。
不小心被某位表哥聽到了,十分激動(dòng)桥嗤,就給他女朋友發(fā)了條函數(shù)公式:
=REPT("I love you",3000)
REPT函數(shù)是重復(fù)的意思赛糟,可以將字符串重復(fù)指定次數(shù)。上面的公式也就是將I love you砸逊,重復(fù)了3000次璧南。
還有一句話,叫做愛如山丘师逸,表哥是這么表達(dá)的:
愛如山丘司倚,要多高就有多高。
9 字符串全角和半角轉(zhuǎn)換
如下圖所示篓像,需要將(Excel)替換為空白动知。
如果直接使用公式:
=SUBSTITUTE(A2,"(Excel)","")
并不能達(dá)到我們的目的。這是由于A列的括號(hào)员辩,既有半角盒粮,也有全角,這在實(shí)際工作中是很常見的奠滑。
ASC函數(shù)可以將全角字符轉(zhuǎn)換為半角丹皱。比如=ASC("("),結(jié)果為(
因此我們可以先使用ASC函數(shù)將A列的數(shù)據(jù)轉(zhuǎn)換為半角宋税,再使用SUBSTITUTE函數(shù)替換摊崭。
=SUBSTITUTE(ASC(A2),"(Excel)","")
10 字符串格式化
我們知道通過(guò)設(shè)置單元格格式,可以將單元格內(nèi)的數(shù)據(jù)顯示為各種格式杰赛。比如日期呢簸、會(huì)計(jì)、指定小數(shù)位數(shù)乏屯、屏蔽零值等根时。
在函數(shù)中有一個(gè)類似功能的函數(shù),我們后面有一章專門聊它辰晕,這里就先簡(jiǎn)單認(rèn)識(shí)下蛤迎。
如下圖所示,需要將A/B兩列的數(shù)據(jù)合并伞芹。
如果你看過(guò)我們上一章的內(nèi)容忘苛,可能會(huì)使用以下公式:
=A2&"-"&B2
但結(jié)果并不如意蝉娜。由于日期的本質(zhì)是數(shù)值唱较,被合并后自然變成了數(shù)值形式扎唾。
正確的公式如下:
=A2&"-"&TEXT(B2,"YYYY-M-D")
公式使用TEXT函數(shù)將日期轉(zhuǎn)換為YYYY-M-D的格式。其中Y是YEAR的首字母南缓,M是MONTH的首字母胸遇,D是DAY的首字母。
再舉個(gè)例子汉形,我們上一章在講MID函數(shù)的時(shí)候纸镊,舉了個(gè)身份證里取出生日期的例子。如下圖所示概疆。
但MID函數(shù)計(jì)算出的結(jié)果逗威,顯然那并不是真正的日期。
公式修改為:=TEXT(MID(A2,7,8),"0000-00-00")
0是占位符岔冀。MID函數(shù)的結(jié)果有8個(gè)數(shù)字凯旭。前面4個(gè)0是年,中間兩個(gè)0是月使套,右邊兩個(gè)0是日罐呼。
計(jì)算結(jié)果如下:
但這就是真正的日期了嗎?
只是看起來(lái)像日期而已侦高,也不是真正的日期嫉柴。
我們開篇說(shuō)過(guò)一句話,一切文本函數(shù)的結(jié)果奉呛,必然是文本值(或錯(cuò)誤值)计螺。TEXT是文本函數(shù),結(jié)果也必然是文本瞧壮。而日期的本質(zhì)是數(shù)值危尿。兩者并不相等。
還記得如何將文本型數(shù)值轉(zhuǎn)換為數(shù)值嗎馁痴?
=TEXT(MID(A3,7,8),"0000-00-00")*1
公式的計(jì)算結(jié)果是一個(gè)數(shù)值谊娇,這個(gè)數(shù)值是什么含義,我們?cè)跀?shù)據(jù)類型章節(jié)里講過(guò)了罗晕,就不再重復(fù)济欢,只需將單元格格式設(shè)置為日期即可。