哈嘍,大家好!都說職場如戰場,這句話放在函數界也一點不過分。前段時間,剛上任的XLOOKUP,就讓有著三十五歲工齡的VLOOKUP面臨職場危機,好在XLOOKUP只能在收費版的excel中使用,且普及度還不高,這才讓VLOOKUP有所緩和。誰能想到,沒過多久,老員工IF函數也被杠上了,來看看是怎么一回事吧!
似乎裁員、辭職這類事件永遠都比較受關注,前段時間華為裁員7000人的事件雖然被證實是炒作舊聞,但的確有很多企業每年都在實施人員精簡。其實不光我們的社會如此,就連函數圈里也有類似的事件,XLOOKUP函數剛被爆出來的時候,VLOOKUP函數下崗的文章就很是火了一陣,今天我們要說的話題也和函數危機有關,事件的主體是一個大家都非常熟悉的函數,IF函數。 作為一個很常用也很實用的函數,IF函數一直是新手比較喜歡的一個,但其實在一些高手的眼中,IF函數是有著很多替代方案的,那么IF函數的危機真的來了嗎?
問題1:如下圖所示,當實際銷售量大于銷售量目標時,獎勵1000元。
如果還想用IF來解決這個問題,可以自己試試,確實太長了。下面分享幾個不用IF的公式供大家參考: 公式1:=MIN(MAX(INT((C2-B2)/10+1)*300,),1000)
這就完全是一種數學思路了,按照階梯獎勵的規則,每一檔相差300元,1000元封頂,所以先把超額數量除以10再加1,乘上300就是獎勵金額:
但是會出現負數和超過1000的情況,再用問題2的思路,結合MAX和MIN就能得到最終結果。 公式2:=MIN(MAX(CEILING(C2-B2+1,10)*30,),1000)
這個公式可以看作是公式1的改版,還是利用了獎勵規則中的一些規律性,用CEILING(C2-B2+1,10)*30取代了INT((C2-B2)/10+1)*300。CEILING函數是將數字按照指定的倍數向上舍入,看看下圖示例或許就明白了。
公式3:=LOOKUP(C2-B2,$F$2:$H$6)
公式3完全是利用了LOOKUP可以進行區間匹配的功能,需要說明的是,本例中使用了一個輔助區域,這對于初學者來說是非常有用的,注意輔助區域的首列一定要用下限值。 如果不想用輔助區域,可以按f9鍵把公式里的區域變成數組就行了: =LOOKUP(C2-B2,{-999,0;0,300;10,600;20,900;30,1000})
如果獎勵標準發生變化時,自己修改數組中的數據即可。 結論:以上案例中,分別使用了邏輯值、MIN、MAX、INT、CEILING和LOOKUP等函數來取代IF,實際上能取代IF的函數還有一些,例如CHOOSE,TEXT等都可以,篇幅所限不再一一列舉。
當問題的判斷條件是基于數字的時候,IF往往不是唯一可以選擇的途徑,換個思路或許可以得到更多方法,但是IF函數的確也有自身的優勢,對于一些非數字性的判斷,就非它不可了。
由此觀之,要想在職場中立于不敗之地,一定要有自身的優勢和技能,并且是一些不可取代的技能!