區間取值的問題,在我們日常工作中常會遇到,例如:銷售提成、等級評定、生產標準核定、績效考核等等,都屬於此類問題,今天就給大家介紹幾種常用的方式方法,旨在豐富大家知識面的同時,也可以對函數的應用拓寬一些眼界。
【資料來源
】
先給出今天教學的來源資料。建議大家在看後面解決方式之前,先思考一下你會用什麼方法處理,會用幾種方法處理,然後再來印證。
資料本身沒有什麼好說的,要求:根據B列的數值,在E列的範圍條件中找到對應範圍在H列的區間係數,並提取到在C列計提係數中。
本身來說,這類問題更多的是計算計提金額,我們為了更加突出提取係數的函數部分,就省略了此環節,大家記得下面的每個函數再乘以B列數值就可以得到提列金額。
【附加知識
】
在給大家解決問題的方式之前,先說一點附加知識。看一下上圖中F列的表達方式,在日常工作中,我們看到這類問題的條件描述大部分都會寫成E列的格式。但區間的表示方式,規範的寫法應該如F列的格式,由兩個值組成,以逗號隔開,左邊的值為最小值,右邊的值為最大值,“[ ]」為包含等於,「( )」為不包含等於。無窮符號是在插入符號中輸入,如下。
##【解題方案】
【方法一:IF函數】
#圖例: C2單元格函數:=IF(B2>=500,0.1,IF(B2>=300,5%,IF(B2>=150,3%,IF(B2>=50 ,1%,0))))
函數解析:
對於區間取值的問題,IF函數或許是我們最先想到的方式,也是很多同學用的最多的方式,同時它也確實是最好理解函數原理的一個。但是小函數卻有大智慧,對於IF函數,我們要知道多級IF嵌套的運算順序是從左向右進行的,第一級條件B2>=500為真(TRUE),則返回0.1,為假(FALSE)則進行第二級IF判斷B2>=300,為真(TRUE)則返回5%,為假(FALSE)則進行第三級判斷條件,以此類推。當某一級條件為真(TRUE)返回某個值後,函數也就不再向後運行。所以很多同學寫錯了IF嵌套,就是寫錯了這個邏輯關係,導致返回值不對。記住這個邏輯關係一定是要么全用>號,從大到小寫;要么全用 上圖就是全用號寫的IF函數,大家注意到沒有,條件中的=號都是包含在次一級跳點區間中的,所以我們在函數中只使用了號,沒有使用=號。C2單元格函數:=IF(B2IF(B2IF(B2IF(B210%))))
#【方法二:VLOOKUP函數】
圖例:##C2單元格函數:
=VLOOKUP(B2,$G$2:$H$6,2,1)VLOOKUP函數用於垂直查詢,一共有四個參數,前三個我們就不多介紹了,其中第四個參數是模糊查詢(TRUE)/精確查詢(FALSE)。
VLOOKUP函數是使用率很高的函數,再絕大多數的工作環境中我們都可以使用精確查詢,但是在區間取值的問題上,必須使用模糊查詢。
使用VLOOKUP函數區間取值時,我們的資料來源必須像G、H列一樣,將資料依照「升序」的方式排列出來。當然我們也可以使用數列,同樣數列的輸入也須依照升序來寫{0,0;50,1%;150, 3%;300,5%;500,10%}。數列的問題不是今天的重點,我們以後寫數組函數內容的時候再來說它。
【方法三:LOOKUP函數】#圖例:
C2單元格函數:
=LOOKUP(B2,$G$2:$G$6,$H$2:$H$6)這裡我們使用了LOOKUP函數的「向量」用法。即在第一個區域(第2參數)的查詢值中,傳回第二個區域(第3參數)中對應的值。這個是不是比VLOOKUP函數更好理解呢?同理,和VLOOKUP函數一樣,它的資料來源也需要升序排列。 當然我們也可以使用LOOKUP函數的陣列用法,如下: #LOOKUP函數的陣列用法,是在區域的首端找到值,再傳回區域末端對應的值。 LOOKUP函數相對於VLOOKUP函數(垂直查詢)和HLOOKUP函數(水平查詢)來說,倒是顯得「全能」了一些,它可以根據行或列來做今天的區間取值問題,如下圖: 相關學習推薦:excel教學
以上是實用Excel技巧分享:聊聊區間查詢的三大套路!的詳細內容。更多資訊請關注PHP中文網其他相關文章!