max不是求最大值的函數嗎?什么時候成了“查詢界的黑馬”?還讓vlookup都甘拜下風了?下面本篇文章就來帶大家深入了解一下max的查詢功能,希望對大家有所幫助!
大家都知道VLOOKUP可以按給定的內容去匹配到我們所需的數據,正因為如此,它在函數界有了很大的名氣。但是今天要分享的這三個示例,如果使用VLOOKUP去匹配數據的話,就有些麻煩了(有興趣的朋友可以自己試試)。就在VLOOKUP頭疼不已的時候,MAX函數二話不說,只用了一個套路就把三個問題都給解決了。
可能有些小伙伴會好奇,MAX不是求最大值的函數么,它怎么能夠解決VLOOKUP都搞不定的問題呢?還有這個套路又是什么呢?一起往下看看就明白了……
示例1:在業務明細表中找出每個經銷商最近一次的業務日期
為了便于理解問題,數據源只保留了經銷商和業務日期兩列數據,現在需要得到每個經銷商最近一次發生業務的日期。(提示:數據源中的業務日期是升序排列的。)
不知道使用VLOOKUP該怎么解決問題呢?MAX使出的套路是這樣的:
=MAX(($A$2:$A$18=D2)*$B$2:$B$18)
錄入方法請看動畫演示:
注意這個公式在輸入后要同時按住Ctrl和Shift鍵再回車,公式會自動出現大括號。
如何理解這個公式是大家最關心的問題,其實原理很簡單,首先做一個比較,看看A列有哪些數據和我們需要判斷的供貨商一致,也就是$A$2:$A$18=$D2這部分的作用。在編輯欄選中這部分公式,按下F9鍵就能看到公式的計算結果。
可以看到公式的結果是一組邏輯值,當A列的內容與所要匹配的經銷商一致時得到TRUE,不一致則為FALSE。
接下來就是用這一組邏輯值與B列的業務日期做乘法(Excel中的日期的本質上是數字哦),TRUE在進行運算時與數字1相同,FALSE在進行運算時與數字0相同,因此計算結果是這樣的。
在得到的這組數字中,0表示沒有匹配到對應的經銷商時返回的值,而不為0的這些數字表示匹配到對應的經銷商后返回的業務日期。其中最大的那個值就是最近的一次日期,因此MAX就能輕而易舉的得到最終結果。
如果你做出來的結果不是日期而是數字的話,把單元格格式改成日期格式就沒問題了。
示例2:按照工號或姓名得到對應的獎金
通常在進行數據匹配時,是用一個固定的條件進行查找。而在這個例子中,我們的條件是二者之一。
不管是工號還是姓名,都可以得到對應的獎金。
不知道VLOOKUP該如何解決這個問題呢?反正MAX還是一樣的套路:
=MAX(($A$2:$B$13=E2)*$C$2:$C$13)
公式的錄入方法和原理不再贅述,與示例1完全一樣,再來看看示例3。
示例3:按照姓名找到對應的分組代碼
每一組有四名組員,按照組員姓名找到所屬分組的代碼。
如果說前兩個例子VLOOKUP還想掙扎著折騰一下的話,這個例子直接就能讓VLOOKUP找不到北了。MAX還是沿用了老套路:
=MAX(($B$2:$E$4=A7)*$A$2:$A$4)
怎么樣,MAX函數的這個套路是不是很強!
要使用這個套路需要注意以下兩點:
1.?查找結果為數字;
2.?注意判斷條件的區域與結果所在區域的選取一定要準確,并且要進行鎖定。
那么問題來了,如果要查找的結果不是數字呢?
這時候僅靠MAX就無法應付了,需要借助IF或者其他函數才能滿足需要,關于這方面的案例,我們以后再介紹。
相關學習推薦:excel教程