2017年4月21日 星期五

Excel-資料重覆取最後一個(OFFSET,ROW)

網友問到:根據在 Excel 中的資料表(如下圖左),如何查詢各個款號的最後一筆資料(如下圖右)?
Excel-資料重覆取最後一個(OFFSET,ROW)

【公式設計與解析】
選取A欄~B欄中要放資料的儲存格,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:款號、日期。
儲存格F2:{=OFFSET($B$2,MAX(IF(款號=E3,ROW(日期),""))-2,0)}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
複製儲存格F2,貼至儲存格F2:F6。
(1) IF(款號=E3,ROW(日期),"")
在陣列公式中,判斷『款號』陣列中的儲存格是否和儲存格E3相同,若是,則傳回日期儲存格的列號;若否,則傳回空字串(『""』)。
(2) MAX(IF(款號=E3,ROW(日期),""))
根據第(1)式所傳回的日期儲存格的列號,利用 MAX 函數找出最大值。(多個相同款號中的最後一個)
(3) OFFSET($B$2,MAX(IF(款號=E3,ROW(日期),""))-2,0)
將第(2)式代入 OFFSET 函數,求得對應的日期儲存格。
同理,
儲存格G2:{=OFFSET($C$2,MAX(IF(款號=E3,ROW(日期),""))-2,0)}
公式同儲存格F2,僅將起始儲存格定為儲存格C2。

沒有留言:

張貼留言

檢視其他文章

好康東東