回覆列表
-
1 # 陳則office及資料分析
-
2 # 套路Excel
先看上圖,將資料都放在一個sheet內看得清楚。因為存在合併單元格,所以先用lookup函式引用K列最後一個非空日期。M列的班次生成的數字就是日期,只不過是數字格式,沒有轉為日期格式。(在Excel中日期的本質是數字)。這用於查詢的時候無須改變格式,不會影響結果。
公式如下:注意的是用了相對引用和絕對引用。紅色方框紅色線部分。
下面公式加粗字型。
=LOOKUP(1,0/($K$2:K2<>""),$K$2:K2)
然後再套index+match公式就行,公式如下:
=INDEX($A$1:$H$5,MATCH(L2,$A$1:$A$5,0),MATCH(LOOKUP(1,0/($K$2:K2<>""),$K$2:K2),$A$1:$H$1,0))
MATCH(L2,$A$1:$A$5,0)這個公式的是查詢姓名的位置,返回行號。
MATCH(LOOKUP(1,0/($K$2:K2<>""),$K$2:K2),$A$1:$H$1,0)這個公式查詢的是日期的位置,返回列號。
再用index就是查詢 $A$1:$H$5 這個單元格範圍,姓名在第幾行,日期在第幾列,交叉的單元格。
比如 A和6月1日,A在第2行,6月1日在第2列,則返回單元格B2(2,2),見下圖黃色單元格B2,其他查詢原理一樣。
希望對問者和大家有幫助。
先說結論,用Index和雙match函式可以實現你的需求
製作了一個原始資料表標紅的,應該就是你希望達到的目的
在M3單元格輸入=INDEX($D$3:$I$12,MATCH($M3,$C$3:$C$12,0),MATCH($L3,$D$3:$I$3,0))
下拉,即可
這兩個函式,可能需要自己詳細消化一下
如果,有問題
可以學習一下陳則老師的Vlookup函式的專欄
裡面有詳細講到
我是陳則,專注於office軟體及資料分析技能
點開我的頭像——找到Vlookup函式專欄,開始學習吧!
全網,就陳老師把Vlookup函式講得最細,最透了!
分享職場的那些故事和辦公軟體、資料分析技能提升。