1054Excel 跨列複製-OFFSET、INDEX及INDIRECT函數

Excel 跨列複製-OFFSET、INDEX及INDIRECT函數

1054

Excel 跨列複製-OFFSET、INDEX及INDIRECT函數

示範檔

範例檔

1054.XLSX

結果檔

1054F.XLSX

豬八戒詢問唐三藏:「師傅,請問想把資料跳列複製要怎麼做?」。

唐三藏:「其實這可以使用三個函數(OFFSETINDEXINDIRECT)來完成。」

一、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再加2A欄儲存格內容。

2. IF(INDIRECT("A"&(ROW()-2)*2+2)=0,"",INDIRECT("A"& (ROW()-2)* 2+2)) 如果1.計算的結果是0(表示無資料),則不填入資料,否則填入1.的內容。

豬八戒:「哇!師傅您好棒喔!」

唐三藏:「那是當然的。」