編按:哈嘍,大家好!在前面的文章中,給大家分享了9種常規的區間查詢的方法,不知道大家還有印象嗎?今天我們又來說區間查詢,不過這次我們要分享的可不是常規的方法,是7種另類的區間查詢的方法,保證小夥伴們是聞所未聞見所未見,如同打開新世界大門一般!趕緊來看看吧!
【前言】
我們之前說過「等級評定、區間取值」的話題,記得當時給出了三大類,共九種函數的操作方法:《老是加班還沒加班費?誰讓你不會excel區間查詢的三大套路!》,今天我們接著聊區間查詢。只不過作者E圖表述希望通過本篇閱讀,可以讓同學們學到一些少數人才會的「另類」操作。
【正文】
既然之前和大家說過關於區間取值的方法,那麼今天就給大家換換「口味」,不再引用數字或者文本,本次案例我們來引用「非字體字符」,是什麼呢?見下圖:
「滿天都是小星星」,這樣評定等級的方式應該不陌生吧,很多的企業都會這樣要求,它區別於「ABCD」式或者百分數形式的評級,優點就在於可以很直觀的看出「孰強孰弱」。當然同學們也可以使用「微圖表」操作,效果是一樣的,只是我們通過本例,可以了解並練習一些函數。話不多言,直接開始。
方法一
G2單元格輸入函數:
=LOOKUP(B3,{0,60,70,80,90,100},$F$3:$F$8)
下拉填充柄將函數填充至下方單元格,完成。
這是LOOKUP函數的標準用法,通過常量數組{0,60,70,80,90,100}和單元格區域F3:F8的匹配,達到區間取值的效果。只不過,我們這裡引出的是「圖形字符」。
方法二
是不是覺得方法一比較常規了,那再看看方法二:
G2單元格輸入函數:
=INDEX($F$3:$F$8,MATCH(B3,{0,60,70,80,90,100}))
下拉填充柄將函數填充至下方單元格,完成。
INDEX+MATCH函數的經典用法,通過MATCH(B3,{0,60,70,80,90,100})確定「得分」在常量數組中的序號,作為INDEX被索引的序號,索引出單元格區域F3:F8中對應的圖形字符。
方法三
上面的兩個方法,是不是要被有的同學 「吐槽」,沒有什麼新意啊?其實基礎的內容還是有必要掌握的,不積矽步無以至千里,下面就應同學們的要求,請看「方法三」:
G2單元格輸入函數:
=TEXT(TEXT(TEXT(B3,"[>=100];[>=90];0"),"[>=80];[>=70];0"),"[>=60];")
下拉填充柄將函數填充至下方單元格,完成。
這個函數的用法就不多見了吧。TEXT函數對於「單元格值的格式」來說是一個萬能函數,我們選中某個單元格,按CTRL+1快捷鍵,彈出「設置單元格格式」窗口。
這裡涉及的所有分類中,只有一種效果是TEXT函數實現不了的,其他的都可以用TEXT函數實現。關於TEXT函數的話題比較大,在之前的文章《Excel教程:最魔性的TEXT函數,看一眼就心動~》中,我們也介紹過,這裡就不展開了,下次再給它開一個專題來討論。
「方法三」是典型的用TEXT函數代替IF函數的用法(在之前的文章《如果函數有職業,TEXT絕對是變裝女皇!》中有介紹過),TEXT函數代替條件函數用法的語法:
TEXT(數值,"[條件1]顯示格式;[條件2]顯示格式;否則顯示格式;文本顯示格式"),我們可以看到TEXT函數的第二參數有四個部分組成,其中第四個格式是「文本格式」,因為我們本案例使用的是對數字的判斷,所以這個格式可以省略,變成下面的語法:
TEXT(數值,"[條件1]顯示格式;[條件2]顯示格式;否則顯示格式"),大家通過語法可以看出,前兩個是判斷條件的,當滿足時返回需要的「小星星格式」,如果不滿足的時候,我們規定了一個「0」的格式。在TEXT函數中這個「0」不是數字,而是一個「占位符」,返回的依然是數值本身。看到這裡,我們需要記住一個規則:TEXT函數作為判斷條件使用的時候,最多只能判斷兩個條件。當有第三個、第四個條件時,我們需要再使用一個TEXT函數來判斷,還有更多的條件,以此類推。
再回到我們「方法三」給出的函數,一共6個條件,所以我們使用了3個TEXT函數嵌套判斷,完成了效果。
方法四
跳過剛剛「燒腦」的方法三,讓我們來看看輕鬆一些的方法四。
G2單元格輸入函數:
=MID("",7-MATCH(B3,{0,60,70,80,90,100}),5)
下拉填充柄將函數填充至下方單元格,完成。
函數解析:我們列出這樣的一個圖形字符串,通過MID函數「斷位取值」的思路,得到我們的需求。
方法五
在方法四中,我們利用了數學的思路,得到了結果。在方法五中同樣也適用,我們利用OFFSET函數來解決這個需求。
G2單元格輸入函數:
=OFFSET($F$2,MAX(1,INT((B3-60)/10+2)),,,)
下拉填充柄將函數填充至下方單元格,完成。
INT((B3-60)/10+2)的作用,就是為了確定OFFSET函數的第二參數向下移動的行數,列表如下:
這樣OFFSET就可以根據分數,確定從基礎單元格F2開始,下移的行數,第三參數為空,默認為0;第四、五參數為空,默認為1,這樣就形成了我們上面的函數,得到需求的效果。
方法六
G2單元格輸入函數:
=INDEX(,MAX(1,INT((B3-60)/10+2)))
下拉填充柄將函數填充至下方單元格,完成。
「方法六」的做法,和「方法五」類似,寫出這個案例,主要是為了讓同學們能夠學會一個「看」函數的習慣。在這個函數中,有一個圖形字符串,可是這個字符串既不是「數字」,也沒有加英文狀態的雙引號,作者E圖表述教給大家一個經驗:在公式函數中,如果看到一個沒有加英文狀態雙引號的「字符串」時,十有八九這是一個「自定義名稱」。我們本方法就是用了這個技巧。
按CTRL+F3,彈出「名稱管理器」窗口,點擊「新建」按鍵,按下圖設置名稱即可,再用MAX+INT的方式確定索引號(同方法五),再用INDEX索引出對應值即可。
方法七
G2單元格輸入函數:
=REPT("",MAX(0,(B3-60)/10+1))&REPT("",5-INT(MAX(0,(B3-60)/10+1)))
下拉填充柄將函數填充至下方單元格,完成。
這個就是今天重點想給大家介紹的一個函數——REPT函數,這個函數只有兩個參數,其功能是根據指定次數重複文本錄入。
語法:REPT(TEXT值,重複的次數)
這裡需要注意一點:重複的次數,可以通過計算得到,如果得到的是小數,REPT函數默認只取整數部分,即ROUNDDOWN函數的效果,例如:
根據這個特性,我們上面公式中計算重複次數的方式,才有意義。這裡面的「數學思維」你能看懂嗎?
【編後語】
EXCEL是統計、是數據分析、是「算數」的軟體,每一個EXCELER的操作都應該和數學有關,即便我們處理文本字符串,這其中有的時候同樣離不開「數學的思維」。這個思路希望可以給各位同學,在工作上帶來一些新的創意,可以讓工作更輕鬆,更有「樂趣」。
****部落窩教育-excel區間取值方法****
原創:E圖表述/部落窩教育(未經同意,請勿轉載)
更多教程:部落窩教育(www.itblw.com)
微信公眾號:exceljiaocheng