392 | 使用Excel函數實現Excel資料分段區間查找的方法 | ||||
示範檔 | 無 | 範例檔 | 392.XLSX | 結果檔 | 無 |
今天本單元要和大家分享的Excel知識是兩個函數公式套用,有關資料區間查詢的。分別是使用LOOKUP函數和FREQUENCY函數來實現Excel資料分段區間查找的方法。
n LOOKUP函數
第一個是大家耳熟能詳的LOOKUP函數。
舉個例子來說,以上圖為例,A1:B6儲存格範圍是一張成績評價標準表。用我的邏輯思考翻譯一下,小於60不及格,大於等於60小於80為及格,大於等於80小於90為優良……依次類推。
現在我們要對某個同學的成績做出評判。
將G2到G8儲存格框選起來,在編輯列輸入公式:「=LOOKUP(F2,A$2:B$6)」後,再按Ctrl + Enter鍵完成公式輸入。
假設這位元同學是資一1的女漢子張蓉,她圖表成績得了22分,那麼她的最終評價是:不及格。
假設某天張蓉因為不思念男友某人,導致發揮超出實力,考了98高分,那麼該公式傳回的結果為:優秀。
需要說明的是,LOOKUP函數的這個查詢套路,即
LOOKUP(查找值,查找範圍)
要求查找範圍的首欄資料按升幂排列(由小到大),否則公式可能得出錯誤的結果。
n Frequency函數
第二個是在部落格中平時很少給大家介紹的FREQUENCY函數。
在Excel函數裡,FREQUENCY是一個運算效率很高、功能異常強大的函數,在條件計數、查詢、排序等方面都有很多的妙用,但它又是一個較難的函數,加上有些功能可以用樞紐分折表做出,以至於用的人很少,少到什麼地步?夜晚的時候,呼吸著純淨的霧霾,你抬頭數數天上的星星就知道咧。
今天先簡單介紹一個FREQUENCY範圍查詢的套用,感興趣的親友們可以對這個函數自我充電一下。
如上圖所示,A1:B6儲存格範圍依然是一份成績評價標準表。
F2:F8範圍依然是資料處理科一年級學員的得分記錄,現在,依然需要對得分進行評級。
看起來似乎和上面的例題並無區別,但需要說明的是評分標準。
評分標準是0-59得A,60-79得B……諸如此類,而是尋找最接近的值,進而得出結果。
比如第一位學員張蓉的得分為22,22距離0相差22,距離60相差38,結論,22更靠近0,所以,張蓉的評級結果為0所對應的A級,而非60所對應的B級。
簡單的說,就是靠近誰,就屬於誰——真是一個單細胞的女漢子啊。
將G2到G8儲存格框選起來,在編輯列輸入公式:「=LOOKUP(1,0/FREQUENCY(0,ABS ( A$2:A$6-F2)),B$2:B$6)」後,再按Ctrl + Enter鍵完成公式輸入。
簡單說明一下這個公式的運算過程。
ABS(A$2:A$6-F2)部分,計算得出A2:A6範圍和F2之間差的絕對值(正數和零),得到一個記憶體陣列:
{22;38;58;68;73}
FREQUENCY函數,以ABS函數的計算結果為分段範圍,對0進行計頻。由於FREQUENCY函數只在分段點首次出現時統計頻數,且統計小於等於此分段點,大於上一分段點的頻數,所以0所傳回的計頻位置,總是處於最接近0的那個分段點,本例中這個分段點是2,計數為1,其餘分段點,計數為0。依然得到一個記憶體陣列:
{1;0;0;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,因此得分22,傳回0所對應的B2的值A。
此外需要說明的是,FREQUENCY函數支援分段區間亂序,所以並不需要得分範圍必須升冪排列。
留言列表