excel函數技巧:數字條件判斷,換個思維更簡潔

職場 發佈 2020-01-14T08:58:01+00:00

通常遇到這類問題,首先想到的一定是IF函數,公式為:=IF大家都能理解這個公式,而且這個問題也相當簡單,簡單到甚至都不需要用函數就能解決:在公式「=*1000」中,利用了邏輯值直接參與計算,當C2>B2成立時,得到TRUE,反之得到FALSE。


編按:哈嘍,大家好!都說職場如戰場,這句話放在函數界也一點不過分。前段時間,剛上任的XLOOKUP,就讓有著三十五歲工齡的VLOOKUP面臨職場危機,好在XLOOKUP只能在收費版的excel中使用,且普及度還不高,這才讓VLOOKUP有所緩和。誰能想到,沒過多久,老員工IF函數也被槓上了,來看看是怎麼一回事吧!


似乎裁員、辭職這類事件永遠都比較受關注,前段時間華為裁員7000人的事件雖然被證實是炒作舊聞,但的確有很多企業每年都在實施人員精簡。其實不光我們的社會如此,就連函數圈裡也有類似的事件,XLOOKUP函數剛被爆出來的時候,VLOOKUP函數下崗的文章就很是火了一陣,今天我們要說的話題也和函數危機有關,事件的主體是一個大家都非常熟悉的函數,IF函數。


作為一個很常用也很實用的函數,IF函數一直是新手比較喜歡的一個,但其實在一些高手的眼中,IF函數是有著很多替代方案的,那麼IF函數的危機真的來了嗎?

問題1:如下圖所示,當實際銷售量大於銷售量目標時,獎勵1000元。

通常遇到這類問題,首先想到的一定是IF函數,公式為:=IF(C2>B2,1000,0)

大家都能理解這個公式,而且這個問題也相當簡單,簡單到甚至都不需要用函數就能解決:

在公式「=(C2>B2)*1000」中,利用了邏輯值直接參與計算,當C2>B2成立時,得到TRUE,反之得到FALSE。邏輯值在與數字計算時,TRUE等同於1,FALSE等同於0,因此公式「=(C2>B2)*1000」同樣可以得到所需的結果。

問題2:還是計算獎勵的問題,這次對獎勵規則做了調整,當實際銷量大於目標銷量時,每超過一個銷量獎勵50元,1000元封頂。

這時候如果還用IF函數解決,公式就變成了「=IF(C2B2,0,IF((C2-B2)*50<1000,(C2-B2)*50,1000))」。

這個公式進行了兩次判斷,首先判斷是否達到獎勵標準,也就是C2B2時,不發獎勵;如果達到獎勵標準,還要進一步判斷獎勵是否達到1000元,也就是(C2-B2)*50<1000,如果不到1000,按實際獎勵計算,超過了仍按1000計算。

在這個問題中,要用好IF已經需要一點功力才行了,公式明顯比第一個問題複雜了很多,這時候,IF函數的新對手出現了,而且一下子就來了兩個:=MIN(MAX((C2-B2)*50,0),1000)

MIN函數用於得到幾個數字中最小的一個,MAX函數用於得到幾個數字中最大的一個,這兩個函數配合了一下,竟然把一個原本該是IF函數的活給輕鬆解決了。

這個公式需要分成兩部分來理解,首先MAX((C2-B2)*50,0)得到理論獎勵和0中的較大者,如果不夠獎勵標準,(C2-B2)*50就是一個負數,較大者為0,反之就是超額銷量*50;接下來再將MAX得到的結果和1000放在一起,通過MIN函數來得到較小者,如果獎勵金額超過1000,則返回1000。這樣就可以把一個比較複雜的IF公式變得簡潔。

問題3:按超額數量計算階梯獎勵,規則如圖所示。

如果還想用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函數的確也有自身的優勢,對於一些非數字性的判斷,就非它不可了。

由此觀之,要想在職場中立於不敗之地,一定要有自身的優勢和技能,並且是一些不可取代的技能!


****部落窩教育-excel多重判斷條件函數公式****

原創:老菜鳥/部落窩教育(未經同意,請勿轉載)

更多教程:部落窩教育(www.itblw.com)

微信公眾號:exceljiaocheng

關鍵字: