編按:哈嘍,大家好,!都說職場如戰(zhàn)場,,這句話放在函數(shù)界也一點不過分。前段時間,,剛上任的XLOOKUP,,就讓有著三十五歲工齡的VLOOKUP面臨職場危機,好在XLOOKUP只能在收費版的excel中使用,,且普及度還不高,這才讓VLOOKUP有所緩和,。誰能想到,,沒過多久,老員工IF函數(shù)也被杠上了,,來看看是怎么一回事吧,! 似乎裁員、辭職這類事件永遠都比較受關注,,前段時間華為裁員7000人的事件雖然被證實是炒作舊聞,,但的確有很多企業(yè)每年都在實施人員精簡。其實不光我們的社會如此,,就連函數(shù)圈里也有類似的事件,,XLOOKUP函數(shù)剛被爆出來的時候,VLOOKUP函數(shù)下崗的文章就很是火了一陣,,今天我們要說的話題也和函數(shù)危機有關,,事件的主體是一個大家都非常熟悉的函數(shù),IF函數(shù),。 作為一個很常用也很實用的函數(shù),,IF函數(shù)一直是新手比較喜歡的一個,但其實在一些高手的眼中,,IF函數(shù)是有著很多替代方案的,,那么IF函數(shù)的危機真的來了嗎? 問題1:如下圖所示,,當實際銷售量大于銷售量目標時,,獎勵1000元。 通常遇到這類問題,,首先想到的一定是IF函數(shù),,公式為:=IF(C2>B2,1000,0) 大家都能理解這個公式,,而且這個問題也相當簡單,簡單到甚至都不需要用函數(shù)就能解決: 在公式“=(C2>B2)*1000”中,,利用了邏輯值直接參與計算,,當C2>B2成立時,得到TRUE,,反之得到FALSE,。邏輯值在與數(shù)字計算時,TRUE等同于1,,FALSE等同于0,,因此公式“=(C2>B2)*1000”同樣可以得到所需的結(jié)果。 問題2:還是計算獎勵的問題,,這次對獎勵規(guī)則做了調(diào)整,,當實際銷量大于目標銷量時,每超過一個銷量獎勵50元,,1000元封頂,。 這時候如果還用IF函數(shù)解決,公式就變成了“=IF(C2B2,0,IF((C2-B2)*50<1000,(C2-B2)*50,1000))”,。 這個公式進行了兩次判斷,,首先判斷是否達到獎勵標準,也就是C2B2時,,不發(fā)獎勵,;如果達到獎勵標準,還要進一步判斷獎勵是否達到1000元,,也就是(C2-B2)*50<1000,,如果不到1000,按實際獎勵計算,,超過了仍按1000計算,。 在這個問題中,要用好IF已經(jīng)需要一點功力才行了,,公式明顯比第一個問題復雜了很多,,這時候,IF函數(shù)的新對手出現(xiàn)了,,而且一下子就來了兩個:=MIN(MAX((C2-B2)*50,0),1000) MIN函數(shù)用于得到幾個數(shù)字中最小的一個,,MAX函數(shù)用于得到幾個數(shù)字中最大的一個,這兩個函數(shù)配合了一下,,竟然把一個原本該是IF函數(shù)的活給輕松解決了,。 這個公式需要分成兩部分來理解,首先MAX((C2-B2)*50,0)得到理論獎勵和0中的較大者,如果不夠獎勵標準,,(C2-B2)*50就是一個負數(shù),,較大者為0,反之就是超額銷量*50,;接下來再將MAX得到的結(jié)果和1000放在一起,,通過MIN函數(shù)來得到較小者,如果獎勵金額超過1000,,則返回1000,。這樣就可以把一個比較復雜的IF公式變得簡潔。 問題3:按超額數(shù)量計算階梯獎勵,,規(guī)則如圖所示,。 如果還想用IF來解決這個問題,可以自己試試,,確實太長了,。下面分享幾個不用IF的公式供大家參考: 公式1:=MIN(MAX(INT((C2-B2)/10+1)*300,),1000) 這就完全是一種數(shù)學思路了,按照階梯獎勵的規(guī)則,,每一檔相差300元,,1000元封頂,所以先把超額數(shù)量除以10再加1,,乘上300就是獎勵金額: 但是會出現(xiàn)負數(shù)和超過1000的情況,再用問題2的思路,,結(jié)合MAX和MIN就能得到最終結(jié)果,。 公式2:=MIN(MAX(CEILING(C2-B2+1,10)*30,),1000) 這個公式可以看作是公式1的改版,還是利用了獎勵規(guī)則中的一些規(guī)律性,,用CEILING(C2-B2+1,10)*30取代了INT((C2-B2)/10+1)*300,。CEILING函數(shù)是將數(shù)字按照指定的倍數(shù)向上舍入,看看下圖示例或許就明白了,。 公式3:=LOOKUP(C2-B2,$F$2:$H$6) 公式3完全是利用了LOOKUP可以進行區(qū)間匹配的功能,,需要說明的是,本例中使用了一個輔助區(qū)域,,這對于初學者來說是非常有用的,,注意輔助區(qū)域的首列一定要用下限值。 如果不想用輔助區(qū)域,,可以按f9鍵把公式里的區(qū)域變成數(shù)組就行了: =LOOKUP(C2-B2,{-999,0;0,300;10,600;20,900;30,1000}) 如果獎勵標準發(fā)生變化時,,自己修改數(shù)組中的數(shù)據(jù)即可。 結(jié)論:以上案例中,,分別使用了邏輯值,、MIN、MAX、INT,、CEILING和LOOKUP等函數(shù)來取代IF,,實際上能取代IF的函數(shù)還有一些,例如CHOOSE,,TEXT等都可以,,篇幅所限不再一一列舉。 當問題的判斷條件是基于數(shù)字的時候,,IF往往不是唯一可以選擇的途徑,,換個思路或許可以得到更多方法,但是IF函數(shù)的確也有自身的優(yōu)勢,,對于一些非數(shù)字性的判斷,,就非它不可了。 由此觀之,,要想在職場中立于不敗之地,,一定要有自身的優(yōu)勢和技能,并且是一些不可取代的技能,! ****部落窩教育-excel多重判斷條件函數(shù)公式**** 原創(chuàng):老菜鳥/部落窩教育(未經(jīng)同意,,請勿轉(zhuǎn)載) |
|
來自: 部落窩教育BLW > 《部落窩excel/VBA》