問(wèn)題描述:值班組長(zhǎng)在安排部門(mén)人員值班的時(shí)候,需要查看每個(gè)人員最近一次的值班日期,避免重復(fù)安排。例如下圖中,黃思思最近一次值班時(shí)間是19年10月12號(hào),因此在排版的時(shí)候就不會(huì)排在13號(hào),現(xiàn)在我想選擇每一個(gè)員工,都可以看到他最近的值班時(shí)間,如何用函數(shù)實(shí)現(xiàn)呢?
方法一:使用LOOKUP函數(shù)。
具體操作步驟如下:
1、選中E2單元格 -- 在編輯欄中輸入公式“=LOOKUP(1,0/($A$2:$A$13=$D$2),$B$2:$B$13)” -- 按回車(chē)鍵回車(chē)。
2、動(dòng)圖演示如下。
3、公式解析。
上述公式中,先判斷A2:A13單元格的值是否跟D2單元格的值相等,如果相等,返回TRUE,否則,返回FALSE。此時(shí)得到一個(gè)TRUE和FALSE組成的數(shù)組{FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE}。用0除以這個(gè)數(shù)組,得到由0和錯(cuò)誤值#DIV/0!組成的數(shù)組{#DIV/0!;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0},此時(shí)由于在這個(gè)數(shù)組中找不到1,所以LOOKUP函數(shù)會(huì)查找最后一個(gè)比1小的最大值,也就是0,忽略錯(cuò)誤值,所以找到了數(shù)組中最后一個(gè)0,返回B2:B13單元格區(qū)域?qū)?yīng)的值。
方法二:使用INDEX+SUMPRODUCT+MAX+ROW函數(shù)。
具體操作步驟如下:
1、選中E2單元格 -- 在編輯欄中輸入公式“=INDEX($B$2:$B$13,MAX(ROW($A$2:$A$13)*($A$2:$A$13=$D$2))-1)” -- 按“Ctrl+Shift+Enter”回車(chē)。
2、動(dòng)圖演示如下。
3、公式解析。
上述公式中,先判斷A2:A13單元格的值是否跟D2單元格的值相等,如果相等,返回TRUE,否則,返回FALSE。此時(shí)得到一個(gè)TRUE和FALSE組成的數(shù)組{FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE}。該數(shù)組與ROW函數(shù)得到的行號(hào)數(shù)組{2;3;4;5;6;7;8;9;10;11;12;13}相乘,得到一個(gè)由行號(hào)和0組成的數(shù)組{0;3;0;0;6;0;0;0;0;0;0;13},然后用MAX函數(shù)取這個(gè)數(shù)組中的最大值,減去1是因?yàn)槲覀円檎业闹翟贐2:B13單元格區(qū)域中是從第2行開(kāi)始的,我們需要知道查找的值在B2:B13單元格區(qū)域所在的位置,所以要減去1,最后用INDEX函數(shù)從B2:B13單元格區(qū)域獲取對(duì)應(yīng)的值。
聯(lián)系客服