Excel中的MAX函數(shù),相信大家都有用過,作用是用來求一組數(shù)據(jù)中的最大值。但除了這個功能之外,還有一個大家所不知道的隱藏技巧,用來查詢數(shù)據(jù)。 查詢數(shù)據(jù),大家的第一反應(yīng)都是用VLOOKUP或LOOKUP,雖然這兩個函數(shù)的功能已足夠強(qiáng)大,但有時候有些查詢VLOOKUP是無法解決的,例如:查找公司員工一天中最晚一次打卡時間,用VLOOKUP無法解決,但是用MAX函數(shù),一下子就搞定。 下面講兩個用MAX函數(shù)查找的例子,記得點(diǎn)贊轉(zhuǎn)發(fā)哦~ 實(shí)例1:在考勤表中求出每個員工一天內(nèi)的最晚打卡時間。要求:下圖中A列和B列單元格區(qū)域是員工上班的打卡時間,我們要在E列中求出每一個員工一天中最晚一次打卡的時間。 具體操作步驟如下: 1、選中E2單元格 -- 在編輯欄中輸入公式“=MAX(($A$2:$A$18=D2)*$B$2:$B$18)”-- 按組合鍵“Ctrl+Shift+Enter”結(jié)束公式。 2、選中E2單元格 -- 將鼠標(biāo)光標(biāo)定位到單元格右下角,出現(xiàn)“十”字符號按快捷鍵“Ctrl+E”填充公式,即可得到每個員工最后一次打卡時間。 3、動圖演示如下。 【公式解析】 $A$2:$A$18=D2:判斷A列單元格內(nèi)容有哪些是與D2單元格內(nèi)容相等的,如果相等,返回TRUE,否則,返回FALSE。我們在編輯欄中選中$A$2:$A$18=D2,即可看到公式返回的結(jié)果。 ($A$2:$A$18=D2)*$B$2:$B$18:如果$A$2:$A$18=D2返回TRUE,與B列的內(nèi)容相乘,返回B列對應(yīng)單元格的值,如果$A$2:$A$18=D2返回FALSE,與B列的內(nèi)容相乘,結(jié)果為0。 這道題除了使用MAX函數(shù),其實(shí)我們也可以使用LOOKUP函數(shù)。 具體操作步驟如下: 1、選中E2單元格 -- 在編輯欄中輸入公式“=LOOKUP(1,0/($A$2:$A$18=D2),$B$2:$B$18)”-- 按回車鍵回車。 2、選中E2單元格 -- 將鼠標(biāo)光標(biāo)定位到單元格右下角,出現(xiàn)“十”字符號按快捷鍵“Ctrl+E”填充公式,即可得到每個員工最后一次打卡時間。 3、動圖演示如下。 【公式解析】 $A$2:$A$18=D2判斷這個區(qū)域中是否等于D2單元格的姓名,如果是,返回TRUE,否則,返回FALSE。TRUE=1,F(xiàn)ALSE=0。利用LOOKUP的特性(忽略錯誤值),所以用0除TRUE和FALSE,0/($A$2:$A$18=D2)滿足條件返回0,不滿足返回錯誤值。公式變成“=LOOKUP(1,0/{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;0;0;#DIV/0!;#DIV/0!;},$B$1:$B$2)”。 可以看到以上公式的數(shù)組中只返回3個0,其他都是錯誤值。二分法使得LOOKUP只能找到不大于查找值的最后一個數(shù)字,因此只能找到0,最后根據(jù)0的行位置(第14-16行)得到第3個參數(shù)對應(yīng)位置的數(shù)據(jù),而MAX可以返回數(shù)值中的最大值,所以返回B16單元格的內(nèi)容。 實(shí)例2:根據(jù)學(xué)號或姓名查找對應(yīng)的測評總分。要求:下圖中A1:D10單元格區(qū)域是學(xué)生信息表,我們要在G列中求出學(xué)號或姓名對應(yīng)的測評總分。 具體操作步驟如下: 1、選中G2單元格 -- 在編輯欄中輸入公式“=MAX(($A$2:$B$10=F2)*$D$2:$D$10)”-- 按組合鍵“Ctrl+Shift+Enter”結(jié)束公式。 2、選中G2單元格 -- 將鼠標(biāo)光標(biāo)定位到單元格右下角,出現(xiàn)“十”字符號按快捷鍵“Ctrl+E”填充公式,即可得到學(xué)號或姓名對應(yīng)的測評總分。 3、動圖演示如下。 以上我們用MAX函數(shù)解決了VLOOKUP函數(shù)解決不了的難題,下次別人再問你MAX函數(shù)可以用來做什么,你就不要開口說只可以用來求最大值了。 注意:使用MAX函數(shù)時查找結(jié)果應(yīng)為數(shù)字并且查找結(jié)果應(yīng)升序排序哦~ |
|