下圖中,A:B兩列數(shù)據(jù)就是自己從后臺(tái)導(dǎo)出的打卡記錄,我們需要將這2列數(shù)據(jù)提取成D:F中所示的單元格區(qū)域。
具體操作步驟如下:
在D2單元格中輸入公式:=LOOKUP(,0/FREQUENCY(0,ISNA(MATCH(A$2:A$81,D$1:D1,))-1),A$2:A3),按回車鍵回車并將公式下拉填充至D22單元格即可。
公式解析:
①M(fèi)ATCH(A$2:A$81,D$1:D1,):
MATCH函數(shù):返回指定數(shù)值在指定區(qū)域中的位置。
該公式中:第一個(gè)參數(shù)A$2:A$81表示要查找的值,第二個(gè)參數(shù)D$1:D1表示要查找的區(qū)域,第三個(gè)參數(shù)省略,默認(rèn)會(huì)查找小于或等于要查找值的最大值,該公式的意思是:A列的打卡日期在D列的打卡日期中首次出現(xiàn)的位置,如果有,就返回當(dāng)前單元格所在的行號(hào),否則返回錯(cuò)誤值#N/A。
②ISNA(MATCH(A$2:A$81,D$1:D1,))-1:
ISNA函數(shù):用于判斷值是否為錯(cuò)誤值#N/A,如果是,返回TRUE,否則,返回FALSE。在邏輯運(yùn)算中,TRUE等于1,F(xiàn)ALSE等于0,所以該公式后面減去1是把公式的結(jié)果轉(zhuǎn)成以0和1顯示的數(shù)組。
③FREQUENCY(0,ISNA(MATCH(A$2:A$81,D$1:D1,))-1):
FREQUENCY函數(shù):表示計(jì)算值在某個(gè)區(qū)域內(nèi)出現(xiàn)的頻率,然后返回一個(gè)垂直數(shù)組。第一個(gè)參數(shù)0表示要對(duì)其頻率進(jìn)行計(jì)數(shù)的一個(gè)數(shù)值,第二個(gè)參數(shù)由第②步可知,返回的是一組由0和1組成的數(shù)組,該公式的意識(shí)是:計(jì)算0在由0和1組成的數(shù)組中出現(xiàn)的頻率。
④LOOKUP(,0/FREQUENCY(0,ISNA(MATCH(A$2:A$81,D$1:D1,))-1),A$2:A3):
LOOKUP函數(shù):LOOKUP函數(shù)有兩種用法:向量形式和數(shù)組形式,這里用的是向量形式。該公式中,第2個(gè)參數(shù)是由1和0組成的數(shù)組,用0來除以這組數(shù)組,當(dāng)分母為0的時(shí)候,計(jì)算結(jié)果是錯(cuò)誤值#DIV/0!,所以返回的是一組由0和錯(cuò)誤值#DIV/0!組成的數(shù)組,第一個(gè)參數(shù)省略,默認(rèn)是0,表示在由0和#DIV/0!組成的數(shù)組中查找小于或等于0的值,最后根據(jù)0的位置得到第三個(gè)參數(shù)對(duì)應(yīng)位置的數(shù)據(jù)。
在E2單元格中輸入公式:=SMALL(IF($A$2:$A$81=D2,$B$2:$B$81,9^9),1),按“Ctrl+Shift+Enter”三鍵結(jié)束數(shù)組公式的輸入并將公式下拉填充至E22單元格即可。
公式解析:
①IF($A$2:$A$81=D2,$B$2:$B$81,9^9):
用IF函數(shù)來判斷$A$2:$A$81的日期是否與D2單元格日期相等,如果相等,返回$B$2:$B$81對(duì)應(yīng)單元格的值,否則返回一個(gè)很大的數(shù)據(jù)。
②SMALL(IF($A$2:$A$81=D2,$B$2:$B$81,9^9),1):
因?yàn)椤按蚩ㄈ掌凇蓖惶斓臄?shù)據(jù)有多個(gè),因此我們用IF函數(shù)求得的結(jié)果也有多個(gè)數(shù)據(jù),此時(shí)我們用SMALL函數(shù)取出第1個(gè)小的值,也就是第一次打卡時(shí)間。
在F2單元格中輸入公式:=MAX(IF($A$2:$A$81=D2,$B$2:$B$81,0)),按“Ctrl+Shift+Enter”三鍵結(jié)束數(shù)組公式的輸入并將公式下拉填充至F22單元格即可。
公式解析:
①IF($A$2:$A$81=D2,$B$2:$B$81,0):
用IF函數(shù)來判斷$A$2:$A$81的日期是否與D2單元格日期相等,如果相等,返回$B$2:$B$81對(duì)應(yīng)單元格的值,否則返回0。
②MAX(IF($A$2:$A$81=D2,$B$2:$B$81,0)):
因?yàn)椤按蚩ㄈ掌凇蓖惶斓臄?shù)據(jù)有多個(gè),因此我們用IF函數(shù)求得的結(jié)果也有多個(gè)數(shù)據(jù),此時(shí)我們用MAX函數(shù)可以在一組數(shù)據(jù)中取出最大的值,也就是最后一次打卡時(shí)間。
今天就跟大家分享到這里,如果你想要學(xué)習(xí)更多的辦公技巧,可以持續(xù)關(guān)注我的頭條號(hào)哦~
聯(lián)系客服