本期我們來聊聊Excel中如何準(zhǔn)確判斷字符的類型,有哪些函數(shù)可以幫助我們來判斷。通過上一期的內(nèi)容,我們知道可以使用TRIM和CLEAN這兩個函數(shù)來解決數(shù)據(jù)中多余空格以及其他影響Excel運算的某些字符,但在使用這兩個函數(shù)的過程中,主要是基于我們大致的猜測,而無法準(zhǔn)確知道到底是哪種類型的字符影響了數(shù)據(jù)的運算。
在進入到工具的介紹之前,我們還是接著以數(shù)據(jù)透視表的應(yīng)用案例先來說明所遇到的問題。

在數(shù)據(jù)透視表中,我們要根據(jù)“Organisation”這一項來統(tǒng)計對應(yīng)“Events”的總數(shù)。
在數(shù)據(jù)透視表中,將“Events”拖至“值”字段區(qū)域,并設(shè)置“求和項”,但結(jié)果顯示的均是“0”,說明統(tǒng)計的結(jié)果是有問題的。

回到數(shù)據(jù)表格中,我們觀察到“Events”列中的數(shù)據(jù)看上去并沒有大問題,然而在Excel中,默認(rèn)情況下“數(shù)字”型的值一般在單元格中向右對齊,而此例中所有的數(shù)據(jù)在單元格中都向左對齊,其原因很可能是當(dāng)前的數(shù)據(jù)為文本類型,而非數(shù)字。

這些看上去是“數(shù)字”的數(shù)據(jù)在Excel表格作為文本存放,原因可能有多種,或因其被轉(zhuǎn)換成文本值,亦或這些單元格中有其他文本字符,但不輕易可見。因此,我們需要使用一些工具來對其進行科學(xué)準(zhǔn)確地判定,然后再施以解決的方案。
01 ISNUMBER函數(shù),判定是否為“數(shù)字”類型的值
第一個用來判斷的函數(shù)是ISNUMBER,在J2單元格中輸入ISNUMBER函數(shù),參數(shù)為I2單元格中的數(shù)據(jù),按Enter鍵后,返回的是FALSE,說明這不是一個數(shù)字型的數(shù)據(jù)。

通過快速填充功能復(fù)制此函數(shù)于該列的其他單元格,發(fā)現(xiàn)“Events”列中的所有數(shù)據(jù)均不是數(shù)字型。

與ISNUMBER函數(shù)類似的另一個用于判斷的函數(shù)是ISTEXT,用于判定數(shù)據(jù)是否為文本類型的數(shù)據(jù)。
既然我們通過ISNUMBER函數(shù)判斷出這些數(shù)據(jù)不是數(shù)字型,接下來的問題就是判斷是否有其他的字符。
02 LEN函數(shù),返回單元格所包含的字符數(shù)量
在K2單元格中輸入LEN函數(shù),參數(shù)為I2單元格,按Enter鍵后,返回的值為“1”,對應(yīng)數(shù)據(jù)“3”,僅含有一個字符;但是當(dāng)復(fù)制此函數(shù)判斷其他的數(shù)據(jù)時,發(fā)現(xiàn)其他的數(shù)據(jù)并不僅僅只有“數(shù)字”本身所包含的字符數(shù)量,例如K3單元格返回的字符數(shù)為“2”,而對應(yīng)I3單元格中我們所能看到的數(shù)字“2”為一個字符,說明此單元格中還有其他的不可見的字符。

如果字符數(shù)和“數(shù)字”本身所包含的字符數(shù)相同,我們可以直接將其轉(zhuǎn)換成數(shù)字型的數(shù)據(jù),而如果包含有其他字符,則需要先清理這些字符,例如在上一期我們所使用的CLEAN和TRIM函數(shù)。
雖然我們知道有其他多余的字符,那如何更準(zhǔn)確地知道這些字符的類型呢?在介紹第三個工具之前,我們先來了解一下ASCII代碼,在下圖的表格中,是一個ASCII代碼的對應(yīng)列表。

計算機是以二進制(Binary)的方式來存儲值的,例如“空格 Space”對應(yīng)的二進制代碼為“100000”。

不過,二進制的方式不易于工作,所以通常以與之對等的十進制方式來表示,例如“空格”所對應(yīng)的十進制代碼為32。再比如大寫字母“A”,其十進制代碼為65。

03 UNICODE函數(shù),返回字符對應(yīng)的十進制代碼
在了解ASCII代碼的基礎(chǔ)上,我們便可以使用UNICODE函數(shù)來確定數(shù)據(jù)中多余的字符究竟是什么。
因“Events”列中的數(shù)據(jù)均在單元格中向右對齊,所以這些多余的字符不應(yīng)在數(shù)據(jù)的左邊,并且基本上可判斷是在數(shù)據(jù)的右邊,所以此例中會用到RIGHT函數(shù)來截取這些多余的字符。
在L2單元格中,輸入函數(shù)公式“=UNICODE(RIGHT(I2,1))”,按Enter鍵后,復(fù)制函數(shù)公式快速填充。

I2單元格對應(yīng)的代碼為52,實際上就是數(shù)字“3”,I3和I4單元格對應(yīng)的代碼為32,所以多余字符為空格,而其下面的數(shù)據(jù)對應(yīng)的代碼為160,關(guān)于代碼160的字符類型以及如何清除這類字符,我們會在下一期繼續(xù)介紹,敬請期待!