今天一位朋友,問到這樣的一個問題:Excel的一列中包含數(shù)字編號分別為4,6,8,她希望根據(jù)這些編號,在另外一列中進行賦值,如果對應(yīng)單元格是4,就指定為1,如果為6就指定為2,如果為8,那么就指定為3;這個公式該如何寫呢?
1.我想如果經(jīng)常用Excel的同學已經(jīng)在心里想到用什么函數(shù)了,一般來說出現(xiàn)這種需要判斷并進行賦值的情況,我們的第一反應(yīng)應(yīng)該就是IF()函數(shù),如下圖,大家能看到在A列中包含不同的數(shù)字,在B1中使用了if函數(shù):=IF(A1=4,1,IF(A1=6,2,IF(A1=8,3,'')));
在這里用到的IF函數(shù)進行三層嵌套,并不復(fù)雜,不過希望大家注意的一點就是在A列中如果存在不等于4,6,8三個數(shù)的情況下,我們該怎么辦呢?例如上圖中的A4單元格,當然在上面的公式中已經(jīng)考慮到了這種情況,也就是除了4,6,8外,其它的情況都給賦空值(公式最后一對雙引號);
2.講到這里我們才剛剛進入今天要講的內(nèi)容,如果上面的if嵌套大家已經(jīng)會了,那么我接下來給大家來點高級的,同樣的問題,我們用另外一個函數(shù)來實現(xiàn)賦值,Lookup()函數(shù),大家可能用過vlookup,卻很少用到或聽過lookup(),actually這函數(shù)相當牛逼了,如果要實現(xiàn)上面的賦值,只要這樣就可以了:=LOOKUP(A1,{4,6,8},{1,2,3});覺得怎么樣?是不是要比if清晰許多,尤其是需要進行判斷的條件有很多層,lookup是不二法門;
當然,用這個函數(shù)有一定限制,也就是中間的4,6,8必須是按照升序排列,你不能寫成=LOOKUP(A1,{6,4,8},{2,1,3});這是不對的,這里用到了另外一個小技巧,兩個大括號,人為的做了兩個數(shù)組,大家不必糾結(jié)什么是數(shù)組,只要會套著用就行了(我們只要會吃雞蛋就行,不用管雞是怎么下的蛋);
3.接下來問題來了,我的這位朋友的表中A列數(shù)據(jù)并不是大家看到現(xiàn)在這樣子,而是以文本形式存在的數(shù)值,其重要的標志就是單元格左上角會有一個綠色的小標記,比如我們要在單元格某列存放身份證號碼,肯定要先設(shè)定其為文本才行,那這樣設(shè)置之后單元格左上角就會有綠色標記了,大家以后一定要敏感起來,單元格中的數(shù)據(jù)以數(shù)值型存在和以文本形式存在,完全是兩碼事兒,就拿現(xiàn)在這里案例,如果是以文本存在,我們在用上面的公式進行判斷,如下圖單元格就會報錯; 4.這種情況下,我們該如何進行處理呢?今天教大家第二個小技巧,將文本型數(shù)字轉(zhuǎn)化為數(shù)值型的最簡單的方法,就是在單元 格前加兩個“-”號,如下圖,我們看到公式中A1前面有兩個“-”號,通過兩個減號就能夠?qū)崿F(xiàn)A1的數(shù)值類型的轉(zhuǎn)換(一定要記住這個小技巧);
5.那接下來如果是IF怎么辦呢?我們最開始給大家寫的if判斷是基于數(shù)值型的單元格,如下圖,大家看我們在C1中寫了上面的的if判斷,結(jié)果都為空,也就是函數(shù)認定,A列中的文本型4,6,8,與公式中的4,6,8不是一回事,結(jié)果都判定為空了;
如果是這種情況,我們就得像上面一樣,在公式的對應(yīng)單元格地址前面都加上兩個減號了 ,以便將文本型單元格內(nèi)容轉(zhuǎn)換為數(shù)值型;
6.或者在公式中的4,6,8兩邊都加上雙引號,也就是將數(shù)值型的數(shù)字通過雙引號轉(zhuǎn)化為文本型;
注:也就是說,我們在寫公式的時候,要保證數(shù)據(jù)類型的統(tǒng)一,才能實現(xiàn)劃等號,不然你的結(jié)果往往就不是你想要的,希望大家能動手試一試,有問題可以再公眾里聯(lián)系我;
2016.06.22
祝大家工作順利愉快~
如您有疑問或建議請聯(lián)系我~
歡迎大家轉(zhuǎn)發(fā)~
希望我的一點分享可以幫助到更多的人;
任釗
Office/Project企業(yè)辦公培訓講師~
微信/QQ:94573068
微軟最有價值專家MVP
美國項目管理協(xié)會PMP
聯(lián)系客服