在 Excel 中取得一個工作表,每一列是一筆記錄。現在要將每一列的資料轉成二列,該如何做呢?

因為無法以單純的相對位址或絶對位址,以複製公式的方式來完成,所以試試以下的方法:

儲存格H1:=INDIRECT(ADDRESS(ROW(2:2)/2+1,6))

儲存格I1:=INDIRECT(ADDRESS(ROW(2:2)/2+1,2))

儲存格J2:=INDIRECT(ADDRESS(ROW(2:2)/2+1,4))

儲存格I2:=INDIRECT(ADDRESS(ROW(2:2)/2+1,3))

儲存格J2:=INDIRECT(ADDRESS(ROW(2:2)/2+1,5))

複製儲存格H1:J2,往下各列貼上,即可完成轉換工作。

此公式中的是ROW(2:2)=2,每往下複製時會變為ROW(4:4)=4、ROW(6:6)=6,可以現在需要2,3,所以以ROW(2:2)/2+1來處理(其中+1是因為第一筆資料由第2列開始)。

ADDRESS(ROW(2:2)/2+1,6)是取得儲存格的位圵。

INDIRECT(ADDRESS(ROW(2:2)/2+1,5))是利用儲存格位址取得內容。

所以複製公式時,並因使用到任一個固定的儲存格位址,都是轉換而來的位址,所以可以完成這個工作。

 

相關函數說明,請參考微軟網站:

ADDRESS

http://office.microsoft.com/zh-tw/excel-help/HP010342163.aspx

INDIRECT

http://office.microsoft.com/zh-tw/excel-help/HP010342609.aspx

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(1) 人氣()