返回列表 上一主題 發帖

[發問] 資料相隔列數不一樣的資料整理

回復 1# missbb
J3陣列公式
=IFERROR(LOOKUP(2,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0),)=J$2),OFFSET($A$1,MATCH($I3,$B:$B,0),1,MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0),)),"")
K3陣列公式
=IFERROR(LOOKUP(2,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0),)=J$2),OFFSET($A$1,MATCH($I3,$B:$B,0),4,MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0),)),"")
向右向下複製
course.zip (8.81 KB)
學海無涯_不恥下問

TOP

回復 3# missbb
OFFSET($A$1,MATCH($I3,$B:$B,0),,MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0),)
計算出每個name的範圍
其中MATCH($I3,$B:$B,0)找到name的列位置
MATCH(1,1/(OFFSET($A$1,MATCH($I3,$B:$B,0),,1000,)=""),0)
從name往下1000列的範圍若等於空白,這樣傳回1000個TRUE與FLASE的結果
用1去除以這1000邏輯值,則產生1000個1與#DIV/0!
用MATCH 找到第1個1,就是第一個空白位置
1除以這範圍等於報表第二列的邏輯值,只會傳回一個對應course成為1/1
用LOOKUP尋找這範圍內最後一個數值就得到該位置
學海無涯_不恥下問

TOP

回復 6# yen956

你是2003版本吧?
因為iferror是2007以後才有的新函數
學海無涯_不恥下問

TOP

回復 8# missbb
試試看附檔,注意名稱x,y
course3.zip (21.47 KB)
學海無涯_不恥下問

TOP

        靜思自在 : 修行要繫緣修心,藉事練心,隨處養心。
返回列表 上一主題