在 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