如果在 Excel 中取得一個資料表,其中含有日期的資料(下圖左),假設要將不同月份的資料取出(下圖右),該如何處理?假設月份輸入在儲存格F1。
儲存格G2:{=IF(ISERROR(VLOOKUP(SMALL(IF(MONTH($B$2:$B$78)=$F$1,$A$2:$A$78),
ROW(1:1)),$A$2:$E$78,COLUMN(B:B))),"",VLOOKUP(SMALL(IF(MONTH($B$2:$B$78)=
$F$1,$A$2:$A$78),ROW(1:1)),$A$2:$E$78,COLUMN(B:B)))}
這是陣列公式,輸入完成要按 Ctrl+Alt+Enter 鍵。複製儲存格G2到儲存格G2:J17。
公式的意義如下:
SMALL(IF(MONTH($B$2:$B$78)=$F$1,$A$2:$A$78),ROW(1:1))
取出B欄中的日期之月份和F1儲存格相同的A欄陣列(編號),利用ROW(1:1)=1,藉助SMALL函數求出編號最小者。往下複製時ROW(1:1)->ROW(2:2)->ROW(3:3),表示依序取出第1小者、第2小者、第3小者…。
VLOOKUP(SMALL(IF(MONTH($B$2:$B$78)=$F$1,$A$2:$A$78),ROW(1:1)),
$A$2:$E$78,COLUMN(B:B)
利用求得的編號再由VLOOKUP函數查表得到日期、姓名、部門、職務等各欄。
最後使用ISERROR函數來避免查不得資料時不顯示錯誤訊息。
只要改變儲存格F1即可顯示不同月份的資料。
關於各個函數的詳細說明,請參閱微軟網站:
SMALL函數:http://office.microsoft.com/zh-tw/excel-help/HP010342904.aspx
VLOOKUP函數:http://office.microsoft.com/zh-tw/excel-help/HP010343011.aspx
ISERROR函數:http://office.microsoft.com/zh-tw/excel-help/HP010342632.aspx
留言列表