錦子老師

一個熱愛EXCEL的使用者

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.的內容。

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

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







CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

Want to read more ?

Login with one click and join the most diverse creator community.