1054Excel 跨列複製-OFFSET、INDEX及INDIRECT函數
豬八戒詢問唐三藏:「師傅,請問想把資料跳列複製要怎麼做 ? 」。
唐三藏:「其實這可以使用三個函數(OFFSET、INDEX及INDIRECT)來完成。」
一、OFFSET函數
點取C2儲存格輸入公式「=IF(OFFSET($A$2,(ROW()-2)*2,)=0,"",OFFSET($A$2,(ROW()-2)*2,))」後,按Enter鍵完成輸入,再將C2儲存格公式複製到C8儲存格。
【公式解析】
1.OFFSET($A$2,(ROW()-2)*2) 傳回以A2儲存格為起點向下移動以目前儲存格列號減2後的值乘2的儲存格內容。
2.IF(OFFSET($A$2,(ROW()-2)*2,)=0,"",OFFSET($A$2,(ROW()-2)*2,)) 如果1.計算的結果是0(表示無資料),則不填入資料,否則填入1.的內容。
若要擷取第一個字元為雙數的儲存格資料,只要將公式變為IF(OFFSET($A$2,(ROW()-2)*2,)=0,"",OFFSET($A$2,(ROW()-2)*2+1,))即可。
二、INDEX函數
點取D2儲存格輸入公式「=IF(INDEX(A:A,(ROW()-2)*2+2)=0,"",INDEX(A:A,(ROW()-2)*2+2))」後,按Enter鍵完成輸入,再將D2儲存格公式複製到D8儲存格。
【公式解析】
1.INDEX(A:A,(ROW()-2)*2+2) 傳回A欄以A1儲存格為起點向下移動以目前儲存格列號減2後的值乘2再加2的儲存格內容。
2.IF(INDEX(A:A,(ROW()-2)*2+2)=0,"",INDEX(A:A,(ROW()-2)*2+2)) 如果1.計算的結果是0(表示無資料),則不填入資料,否則填入1.的內容。
三、INDIRECT函數
點取E2儲存格輸入公式「=IF(INDIRECT("A"&(ROW()-2)*2+2)=0,"",INDIRECT("A"& (ROW()-2)* 2+2))」後,按Enter鍵完成輸入,再將E2儲存格公式複製到E8儲存格。
【公式解析】
1.INDIRECT("A"& (ROW()-2)* 2+2)) 傳回目前儲存格列號減2後的值乘2再加2的A欄儲存格內容。
2. IF(INDIRECT("A"&(ROW()-2)*2+2)=0,"",INDIRECT("A"& (ROW()-2)* 2+2)) 如果1.計算的結果是0(表示無資料),則不填入資料,否則填入1.的內容。
豬八戒:「哇!師傅您好棒喔!」
唐三藏:「那是當然的。」