相信大多數人對IF函數都再熟悉不過了,作為條件判斷函數,它簡單又實用,備受表哥表姐們歡迎!
然而,在處理一些表格數據時,也許你已經習慣使用IF函數,實際上有時候IF函數并不是最适用的,尤其是多層嵌套的情況下,為了避免出錯,便于他人理解,可以采用其它更合适的函數來解決問題的。
下面跟大家講解兩個很常見的實例。
01
評定考核等級
如下圖表1和表2所示:根據考核得分及等級判斷标準,評定員工的考核等級。
表1▲
表2▲
常規做法,直接用IF函數進行判斷,輸入公式:
=IF(B2>=85,"A級",IF(B2>=70,"B級",IF(B2>=60,"C級","D級"))),往下填充即可。
但是假如判斷等級繼續增加的話,IF函數嵌套會越來越多,公式就非常冗長,也容易出錯。
這裡我們可以借助VLOOKUP函數的模糊查找來解決問題,設置再多的等級都不用擔心。首先我們把考核等級标準整理一下,提取出每個等級的下限分數,從低到高升序排列:
再輸入公式:=VLOOKUP(B2,$I$2:$J$5,2),往下填充就可以了。
說明:VLOOKUP函數公式中第4個參數可以是TRUE或1,也可以直接省略,返回的結果等于查找值或小于查找值的最大值。
02
核計獎金
如下圖表格所示,核計員工獎金,規則為實際到崗人數每超過計劃人數1人,獎勵80元,獎金1200元封頂。
如果用IF函數,輸入公式:
=IF(C2<B2,0,IF((C2-B2)*80<1200,(C2-B2)*80,1200)),往下填充。
這裡用IF函數首先判斷有沒有超過計劃人數,超過才有獎勵;如果超過,核計出來的獎金分為兩種情況,再次進行判斷,1200以内按實際獎金核計,超過1200的,則按1200封頂。
仔細分析一下,這裡存在兩個分界值,0和1200,我們也可以用MAX和MIN函數來解決這個問題。首先把(C2-B2)*80計算出的結果和0進行比較,取最大值0,再用(C2-B2)*80和1200進行比較,取最小值1200。
輸入公式:=MIN(MAX((C2-B2)*80,0),1200),往下填充。
結果和IF函數計算是一緻的,公式更加簡短明了。
我們再來延伸一下,把核計獎金的規則改為:超出人數在5人以内的(不含5人),獎勵300;超出人數在5到10人之間的(不含10人),獎勵600;超出10到15人之間的(不含15人),獎勵900;超出15人以上的,則獎勵1200。
如果這時還用IF函數,公式多層嵌套,實在太冗長了:
=IF((C2-B2)<0,0,IF((C2-B2)<5,300,IF((C2-B2)<10,600,IF((C2-B2)<15,900,1200))))
使用這樣的公式,自己容易出錯,别人看了也頭大。
同樣還是可以用MAX和MIN函數來計算,輸入公式:
=MIN(MAX(INT((C2-B2)/5 1)*300,0),1200),往下填充即可。
說明:從0開始計算,每一階梯遞增5人,結合INT函數向下取整加1,乘于上下階梯的差額300,最後用MAX和MIN函數分别取最大值和最小值即可。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!