如果在 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

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(9) 人氣()