2021-05-12 14:32:11
在excel中如何進行區間查詢
在製作成績表格的時候經常會用到區間查詢,比如在某個區間成績屬於優異,而另兩個成績的區間就是及格,這種情況我們應該使用什麼函數進行解決呢?下文將為你講解兩種函數的使用,尤其是功能超強大的frequency函數要特別注意哦!
LOOKUP函數
第一個函數是大家耳熟能詳的LOOKUP。
舉個例子,如下圖,A1:B6區域是一張成績評價標準表,小於60不及格,大於等於60小於80為及格,大於等於80小於90為優良……依次類推。
現在我們要對某個同學的成績做出評判。
G2單元格輸入下面的公式,並向下填充:
=LOOKUP(F2,A$2:B$6)
假設這位同學大紅花,她圖表成績得了98分,那麼她的最終評價是:優異。
假設某天發揮嚴重失常,只考了68分,那麼該公式返回的結果為:及格。
需要說明的是,LOOKUP的這個查詢套路,即
LOOKUP(查詢值,查詢區域)
要求查詢區域的首列資料升序排列,否則公式可能得出錯誤的結果。
FREQUENCY函數
第二個函數微信裡平時很少給大家介紹,是FREQUENCY。
在EXCEL函數里,FREQUENCY是一個運算效率很高、功能異常強大的函數,在條件計數、查詢、排序等方面都有很多妙用,但它又是一個難點函數,以至於用的人很少,少到什麼地步?夜晚的時候,呼吸著純淨的霧霾,你抬頭數數天上的星星就知道咧。
今天先簡單介紹一個FREQUENCY區間查詢的套路,感興趣的親們可以到ExcelHome論壇對這個函數自我充電下。
依然舉個例子。
如上圖,A1:B6單元格區域依然是一份成績評價標準表。
F2:F3區域依然是大紅花同學的兩次得分記錄,現在,依然需要對她的兩次得分進行評級。
看起來似乎和上面的例題並無區別,但需要說明的是評分標準。
評分標準並不是0-9得A,10-14得B……諸如此類,而是尋找最接近的值,進而得出結果。
比如大紅花的首次得分為13,13距離10相差3,距離15相差2,結論,13更靠近15,所以,大紅花的評級結果為15所對應的C級,而非10所對應的B級。
簡單的說,就是靠近誰,就屬於誰——真是一個單細胞的女漢子啊。
G2輸入公式,並向下填充:
=LOOKUP(1,0/FREQUENCY(0,ABS(A$2:A$6-F2)),B$2:B$6)
簡單說明一下這個公式的運算過程。
ABS(A$2:A$6-F2)部分,計算得出A2:A6區域和F2之間差的絕對值(正數和零),得到一個記憶體陣列:
{13;3;2;12;17}
Frequency函數,以ABS函數的計算結果為分段區間,對0進行計頻。
由於frequency函數只在分段點首次出現時統計頻數,且統計小於等於此分段點,大於上一分段點的頻數,所以0所返回的計頻位置,總是處於最接近0的那個分段點,本例中這個分段點是2,計數為1,其餘分段點,計數為0。
依然得到一個記憶體陣列:
{0;0;1;0;0;0}
上面那段話對於不懂FREQUENCY的小夥伴們而言簡直如同天書,好吧,FREQUENCY函數將0扔到了最接近它的那個值身上,從此以後0就歸那個值了,那個值得到了一個0,計數為1,從此過上了幸福的生活,其他人啥都沒得到,所以都返回0,打了光棍——嗯,就是這麼回事。
最後又是一個LOOKUP的查詢套路:
LOOKUP(1,0/(條件),目標區域或陣列)
0/FREQUENCY(0,ABS(A$2:A$6-F2)),構建一個由0和錯誤值#DIV/0!組成的陣列,再用永遠大於0的1作為LOOKUP的查詢值,即可快速得出0所對應的目標區域結果。
此處的LOOKUP目標區域為B$2:B$6,因此得分13,返回15所對應的B4的值C。
此外需要說明的是,FREQUENCY函數支援分段區間亂序,所以並不需要得分割區域必須升序排列。
相關文章