HI,大家好,我是星光。
如果談起Excel里最先被大家所認(rèn)識和熟悉的函數(shù),大概也就是IF、SUM和VLOOKUP這三家伙了,其中IF函數(shù)作為條件判斷函數(shù),簡單又實用,不但職場常用,也是Office等級考試必考。
在工作和學(xué)習(xí)中,也許有很多表格問題你已習(xí)慣了使用IF函數(shù),但有時候IF函數(shù)并不是最適用的,特別是嵌套多層的情況下,比如=if(if(if(if),if(),if()))),自己都能把自己繞暈了不是?坦白的說,當(dāng)嵌套層次超過3層,If函數(shù)就應(yīng)該被其它函數(shù)替代了。
跟我來,給您表演舉幾個例子……
案例1
連續(xù)區(qū)間判斷
每當(dāng)Office二級考試來臨的那段時間,總有很多學(xué)生跑來問星光下面這樣類似的問題。
如上圖所示,假設(shè)有位老師需要對班級學(xué)生的成績進(jìn)行評分,其中60分以下不及格,60~69分之間及格,70~79分良好,80~89分優(yōu)秀,90~100優(yōu)異,如何用公式對如圖所示的表格數(shù)據(jù)進(jìn)行評分?
這問題很多人會立刻想到使用IF函數(shù)去處理:
=IF(B2>90,'優(yōu)異',IF(B2>80,'優(yōu)秀',IF(B2>70,'良好',IF(B2>=60,'及格','不及格'))))……其實……這類問題更適合LOOKUP函數(shù):
=LOOKUP(B2,{0,60,70,80,90},{'不及格';'及格';'良好';'優(yōu)秀';'優(yōu)異'})
LOOKUP查詢范圍升序排列,查找小于或等于查找值的最大值。比如查找89分,在常量數(shù)組{0,60,70,80,90}中,小于等于89的最大值是80,于是返回80所對應(yīng)的結(jié)果優(yōu)秀。
如果你所使用的Excel是2019版或O365,還可以使用下IFS函數(shù),但依然沒有LOOKUP簡潔。
=IFS(B2<60,'不及格',B2<70,'及格',B2<80,'良好',B2<90,'優(yōu)秀',B2>=90,'優(yōu)異')
案例2
多值匹配判斷
這個例子和第一個相似卻又不同。
如下圖所示,如果A列的數(shù)據(jù)等于“看見星光”,就返回男孩,如果是“大紅花”,就返回女孩,如果是“蕭才人”就返回淑女,如果是“芬子”就返回乖乖女,如果是“隨風(fēng)”就返回小正太……
怎么?你還在想怎么使用IF函數(shù)?真是單純的家伙。
你看,雖然這是一個條件判斷問題,但也是一個條件查詢問題呢,所以……試試條件查詢大神VLOOKUP函數(shù)吧……
=VLOOKUP(A2,{'看見星光','男孩';'大紅花','女孩';'芬子','乖乖女';'隨風(fēng)','小正太';'蕭才人','淑女'},2,0)
如果你原意建立一個匹配表,公式會更加簡單。
如上圖所示,在D:E列編寫匹配表,B2單元格只需要輸入以下公式,并復(fù)制填充至數(shù)據(jù)表的最后一行,即可獲取結(jié)果。
案例3
非連續(xù)區(qū)間判斷
第3個例子,說來和第1個例子還是有點像……請看圖……
根據(jù)E:G列的計算規(guī)則,對B列的編號劃分班級。例如0-100之間為1班,200-300為2班,500-600之間為3班……但如果編號不在規(guī)則范圍內(nèi),例如102,則返回“界外”。
嗯,IF函數(shù)……大概是這樣的……
=IF((B2>=E$2)*(B$2<=F$2),G$2,IF((B2>=E$3)*(B$2<=F$3),G$3,IF((B2>=E$4)*(B$2<=F$4),G$4,IF((B2>=E$5)*(B$2<=F$5),G$5,IF((B2>=E$6)*(B$2<=F$6),G$6,'界外')))))
聽說公式寫的越長越復(fù)雜水平越流弊?呵呵噠,TooYoungTooSimple。
其實公式可以很簡單的:
=IFERROR(LOOKUP(1,0/((B2>=E$2:E$6)*(B2<=F$2:F$6)),G$2:G$6),'界外')
LOOKUP(1,0/查詢條件,查詢結(jié)果)是函數(shù)中經(jīng)典的條件查詢套路,常用于多條件查詢;本例中當(dāng)該公式查無結(jié)果時,使用IFERROR返回指定結(jié)果:界外。
(B2>=E$2:E$6)*(B2<=F$2:F$6)是條件,當(dāng)查找值既大于等于E列的值,又小于等于F列的值時,說明它處在正確的區(qū)間內(nèi),會返回True,相反則返回邏輯值False
0/True等同0/1,結(jié)果返回0,0/False等同0/0,結(jié)果返回錯誤值。
LOOKUP忽略錯誤值,查找值1比查找范圍內(nèi)所有的0都大,因而返回最后一個0所對應(yīng)的結(jié)果,也就是目標(biāo)班級。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。