我們公司最近也正在招聘新員工,我也順便去網(wǎng)上溜達(dá)了下。
看到很多崗位的招聘要求上都寫著:「熟練使用 Excel 等辦公軟件」,而且在面試的時(shí)候還都有上機(jī)操作的題目。
然后就去網(wǎng)上搜了搜,看看 Excel 面試題都是什么內(nèi)容、什么水準(zhǔn)的題目,測試下自己能不能搞定。
在這個(gè)過程中,我發(fā)現(xiàn)了一道面試題,挺有意思的,今天分享給大家。
下表記錄的是公司客戶的每一次來店日期,要求:用函數(shù)提取出客戶最后一次來店日期。
乍一看好像不難,但是對于小白而言,可能還是需要下一番功夫。
在簡歷上寫著熟練或者精通 Excel 的人,估計(jì)有相當(dāng)一部分是做不出來的
分析問題
我們先來分析下這道題!
這個(gè)題目是一個(gè)雙條件查找引用,而且是查找最后一次的【來店日期】。
比如:客戶【張三】有很多重名的,【客戶編號(hào)】也有重復(fù)的。
要求:提取出姓名為【張三】,并且編號(hào)為【MD003】的最后一次【來店日期】。
在圖中:【張三】【MD003】的【來店日期】一共有兩次。
第一次:2022-1-4
第二次(也就是最后一次):2022-1-8
思考一下,如果是你,你會(huì)用什么辦法呢?
對于查找,我最先想到的是用 Vlookup 函數(shù)(可能有很多人的第一反應(yīng)也是這個(gè)),因?yàn)榈矊W(xué)習(xí) Excel 的人都會(huì)接觸到它,它也是最常用的查找函數(shù)。
這個(gè)思路是對的,Vlookup 還真能解決這個(gè)問題,下面我們就一起來看看~
解決問題
▋方法 1
Vlookup 通常用于單條件查找,對于雙條件或者更多條件的查找時(shí),它自己無法單獨(dú)完成……
那該怎么辦呢?
我們可以結(jié)合 IF 函數(shù)來實(shí)現(xiàn)雙條件查找。
如下圖:
公式如下:
=VLOOKUP(1,IF({1,0},0/(E2&F2=$A$2:$A$15&$B$2:$B$15),$C$2:$C$15),2,1)
公式大概的意思是:
利用二分法查找的原理,匹配最后一個(gè)符合條件的值。
用 if {1,0} 組成一個(gè)查找區(qū)域和返回區(qū)域,
條件區(qū)域是:
$A$2:$A$15&$B$2:$B$15
把兩個(gè)條件 E2 與 F2 用連接符(&)連在一起,然后與 A2:A15 與 B2:B15 的連接起來?xiàng)l件區(qū)域相比較,
E2&F2=$A$2:$A$15&$B$2:$B$15
如果相同就返回 TRUE, 否則就返回 FALSE,
結(jié)果如下:
{FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
然后用 0 除以這個(gè)數(shù)組,得到一個(gè)由 0 和錯(cuò)誤值組成的內(nèi)存數(shù)組。
{#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
其中:有兩個(gè) 0 就是跟查找條件一樣,最后用比 0 大的任何一個(gè)值 ,這里使用 1 去查找最后一個(gè) 0 出現(xiàn)的位置,并返回在 $C$2:$C$15 對應(yīng)的單元格內(nèi)容。
需要注意的是:
此公式為數(shù)組公式需要按三鍵【Ctrl+Shift+Enter】結(jié)束公式輸入。
如果是 Office 365 可以直接按【Enter】。
▋方法 2
對于大部分小伙伴們來說,如此復(fù)雜的公式不一定會(huì)用……
那該怎么辦呢?
別急!
面試時(shí)一定要穩(wěn)??!
如果只看題目要求的話,我們可以變通下,讓 V 函數(shù)使用起來更簡單點(diǎn)。
這里我們可以將兩個(gè)條件變成一個(gè)條件,將返回最后一個(gè)值,變成返回第一個(gè)值。
需要做的是:增加一個(gè)輔助列,并且對數(shù)據(jù)源做個(gè)排序。
具體是什么意思呢?往下看 ↓↓↓
? 添加輔助列
這一步的目的是將兩個(gè)條件變成一個(gè)條件。
在【A】列增加一個(gè)輔助列:
在 A2 單元格中輸入如下公式:
=B2&C2
將 B2 的客戶名稱和 C2 的客戶編號(hào)用連接符(&)連接在一起,組成一個(gè)條件。
并將公式下拉填充到【A15】。
? 排序
這一步的目的是將最大的日期排到最上面。以便 V 函數(shù)查找第一個(gè)值。
在【數(shù)據(jù)選項(xiàng)卡】中調(diào)出【排序】對話框:
并在【排序】對話框中設(shè)置三個(gè)排序。
第一關(guān)鍵字:客戶名稱,升序
第二關(guān)鍵字:客戶編號(hào),升序
第三關(guān)鍵字:來店日期,降序
最后單擊【確定】,排序結(jié)果就出來了。
如下圖:
? 輸入公式
這一步就可以和平常使用 V 函數(shù)做一樣的操作啦!
如下圖:
公式如下:
=VLOOKUP(F2&G2,$A$1:$D$15,4,0)
公式的意思是:
將 F2 和 G2 兩個(gè)單元格的內(nèi)容連接在一起,組成一個(gè)條件,然后在以輔助列開始的【A1:D15】這個(gè)區(qū)域查找第一次出現(xiàn)的日期(也就是最后一次來店日期),并返回第 4 列對應(yīng)的值。
PS:這個(gè)方法是采取了變通的方式。有些時(shí)候使用輔助列來解決問題也是一個(gè)不錯(cuò)的思路。
▋方法 3
另外,這道題是求最后一次來店日期。
那么最后一次的來店日期也就是最大的日期。
因此我們也可以用 MAX+IF 組合來完成。
所以我們可以寫成下面這樣:
=MAX(IF($A$2:$A$15&$B$2:$B$15=E2&F2,$C$2:$C$15))
公式解析:
先將 A 列與 B 列兩個(gè)條件區(qū)域連接成一個(gè)條件區(qū)域,再和 E 列與 F 列中的條件相比較,如果條件相同,就返回 C 列的區(qū)域。最后用 MAX 返回其中最大一個(gè)日期值(也就是最后一次來店日期)。
如果你的版本是 Office 2016 版以上,還可以使用 MAXIFS 函數(shù)。
=MAXIFS(C:C,A:A,E2,B:B,F2)
Maxifs 函數(shù)的用法跟 Sumifs 的函數(shù)用法一樣。
第一參數(shù)是:返回的區(qū)域
第二參數(shù)是:條件區(qū)域
第三參數(shù)是:條件
基本套路為:
=MAXIFS返回的區(qū)域,條件區(qū)域 1,條件 1,條件區(qū)域 2,條件 2……)
條件區(qū)域和條件對,最多可輸入 126 對。
知識(shí)拓展
如果題目沒有一定要求用函數(shù)解決的話,用透視表可能更加簡單。
在【插入選項(xiàng)卡】中點(diǎn)擊【數(shù)據(jù)透視表】,調(diào)出【數(shù)據(jù)透視表】對話框。
選中【A1:C5】,并選擇【現(xiàn)有工作表】中的【E7】單元格,最后點(diǎn)【確定】。
然后將【客戶名稱】和【客戶編號(hào)】拖到【行區(qū)域】,【來店日期】拖到【值區(qū)域】
對客戶編號(hào)進(jìn)行篩選,
選中【計(jì)數(shù)項(xiàng): 來店日期】右鍵設(shè)置為:最大值。
最終效果如下圖:
好了,我們的面試題這就做完了!
但是,問題來了,你怎么知道結(jié)果是否正確呢?
我們在做表的時(shí)候,千萬要牢記一點(diǎn),就是要有核對機(jī)制。
比如:我們使用 V 函數(shù)得出的結(jié)果如下:
有的應(yīng)聘者可能會(huì)在 H 列用其他函數(shù)(比如:MAX+IF 函數(shù))再校驗(yàn)一次,
最后用兩個(gè)不同的函數(shù)得出的結(jié)果值進(jìn)行比較,并將比較結(jié)果放在 I 列。
如果為 true,就是兩次結(jié)果相同。
如果為 false,就是不同,應(yīng)進(jìn)一步查明問題所在。
當(dāng)然也可以用其他的方法來校驗(yàn),比如透視表等。方法可以自己選擇。
總結(jié)一下
今天介紹了如下方法進(jìn)行多條件查找引用:
? VLOOKUP 函數(shù)
此函數(shù)在多條件查找時(shí)需要結(jié)合 IF 函數(shù)進(jìn)行數(shù)據(jù)重新構(gòu)造,比較復(fù)雜。
? VLOOKUP 函數(shù) + 輔助列
這種方法適應(yīng)性比較強(qiáng),小白也容易上手。
? MAX+IF 函數(shù)組合
采用的數(shù)組判斷的方法,適合有一定數(shù)組基礎(chǔ)的人使用。
? MAXIFS 函數(shù)
使用方法簡單,但只能在 OFFICE 2016 以上的版本中使用。
? 透視表
方法最為簡單,適用范圍廣。
另外,在職場中,千萬記得做完一件事之后,一定要有核對機(jī)制。
并且要有據(jù)可查!
職場中有時(shí)拼的不僅僅是技能,更重要的是經(jīng)驗(yàn)!
本文來自微信公眾號(hào):秋葉 Excel (ID:excel100),作者:明鏡在心,審核:小爽,編輯:竺蘭
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。