如果談起Excel里最先被大家所認識和熟悉的函數,大概也就是IF、SUM和VLOOKUP這三家伙了,其中IF函數作為條件判斷函數,簡單又實用,不但職場常用,也是Office等級考試必考。
在工作和學習中,也許有很多表格問題你已習慣了使用IF函數,但有時候IF函數并不是最適用的,特別是嵌套多層的情況下,比如=if(if(if(if),if(),if()))),自己都能把自己繞暈了不是?坦白的說,當嵌套層次超過3層,If函數就應該被其它函數替代了。
跟我來,給您表演舉幾個例子……
案例1
連續區間判斷
每當Office二級考試來臨的那段時間,總有很多學生跑來問星光下面這樣類似的問題。

根據E:G列的計算規則,對B列的編號劃分班級。例如0-100之間為1班,200-300為2班,500-600之間為3班……但如果編號不在規則范圍內,例如102,則返回“界外”。
嗯,IF函數……大概是這樣的……
=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,”界外”)))))
聽說公式寫的越長越復雜水平越流弊?呵呵噠,誰信誰年輕。
其實公式可以很簡單的:
=IFERROR(LOOKUP(1,0/((B2>=E$2:E$6)*(B2<=F$2:F$6)),G$2:G$6),”界外”)
LOOKUP(1,0/查詢條件,查詢結果)是函數中經典的條件查詢套路,常用于多條件查詢;本例中當該公式查無結果時,使用IFERROR返回指定結果:界外。
(B2>=E$2:E$6)*(B2<=F$2:F$6)是條件,當查找值既大于等于E列的值,又小于等于F列的值時,說明它處在正確的區間內,會返回True,相反則返回邏輯值False
0/True等同0/1,結果返回0,0/False等同0/0,結果返回錯誤值。
LOOKUP忽略錯誤值,查找值1比查找范圍內所有的0都大,因而返回最后一個0所對應的結果,也就是目標班級。
思考時間
▼
第3個案例為什么不能直接使用例子1的LOOKUP模糊查詢套路?






