Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決

問題情景

累進銷售提成:

按照規定的銷售額分級區間,以相應的提成率計算各區間中的提成額,最後進行彙總。

比如銷售額為4750,則累進提成計算式為:=1000*1%+1000*1.2%+1000*1.4%+1000*1.6%+750*1.8%=65.5。

舉例數據如下:

Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決

此示例的問題,只用IF的多重嵌套是解決不了的,因為IF最多隻允許有9重嵌套。即使區間沒那麼多,但IF寫出的函數太長太囉嗦,也不是首選。

我們只能另尋他法。

視頻講解:

關鍵操作

第一步:添加輔助列

增加“區間最低值”與“區間提成”兩個輔助列,區間提成是用1000乘以提成率得來的。如下圖:

Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決

第二步:逐步分析

Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決


以B12單元格4750對應的累進提成為例,4750對應的銷售額區間為F7的4000~4999,所以對應是提成應該為:

C12=(B12-G7)*H7+SUM(I3:I6)

解決三個問題:

  • 查找B12對應的區間最低值G7: LOOKUP(B12,$G$3:$G$13)
  • 查找G7對應的提成率H7:LOOKUP(B12,$G$3:$G$13,$H$3:$H$13)
  • 計算SUM(I3:I6),I3:I6區域的表示:OFFSET(I3,,,MATCH(B12,$G$3:$G$13,1)-1,)

其中MATCH(B12,$G$3:$G$13,1),是指在G3:G13區域內查找比B12小的最大值的位次。

C12處的公式可以寫為:

=(B12-LOOKUP(B12,$G$3:$G$12))*LOOKUP(B12,$G$3:$G$12,$H$3:$H$12)+SUM(OFFSET($I$3,,,MATCH(B12,$G$3:$G$13,1)-1,))

但,公式向上和向下填充時,會出現錯誤:

Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決


原因是:如果銷售額已經小於1000,MATCH(B12,$G$3:$G$13,1)-1的返回值是0。

銷售額已經小於1000時,前面再無分級區間對應的提成累進,所以,公式再進一步完善為:

=(B3-LOOKUP(B3,$G$3:$G$13))*LOOKUP(B3,$G$3:$G$13,$H$3:$H$13)+IF(B3<1000,0,SUM(OFFSET($I$3,,,MATCH(B3,$G$3:$G$13,1)-1,)))

至此,累進提成計算完畢:

Excel累進提成,IF望塵莫及,LOOKUP+SUM+OFFSET+MATCH來解決


擴展

此種方法可適用於各種分區間累計的問題,比如累進稅率等。


分享到:


相關文章: