2007年7月23日 星期一

[EXCEL] 一維轉二維

 
  相關函數INDEX() / ROW() / COLUMN()

  當你從外部匯入原始資料,或是從別人手中承接原始資料,但是資料的排列格式不符合你的要求,這時候,我們會想要做資料排列格式的轉換。

  問題來了,原始資料可能成千上萬筆,總不能一筆一筆,一格一格的剪貼吧?

##CONTINUE##
  這時候,只要能找出新舊兩種排列格式的轉換規律,就可以利用簡單的 ROW(),COLUMN() 函數來幫你自動完成轉換工作。

  舉例來說,如下圖,A 欄為原始資料,我們想把它轉換成 C3:E7 這樣子的三欄格式。

  首先就要找出兩種格式的轉換規律,規律就是,把 A 欄的一維資料依照順序變成三
欄的二維資料。這樣的規律,可以在 C3 輸入公式

=INDEX($A:$A,(ROW(A1)-1)*3+COLUMN(A1))

  再把公式直接複製到 C3:E7 即可。

  要把規律化成公式,其實只是簡單的數列邏輯轉換成數學公式而已。請參考表格 C10:E16,它列出兩種格式之間欄數和列數的對照關係,只要找出一個數學公式可以滿足這個對照關係,再把數學公式代入 Excel 公式中即可。至於怎麼找出數學公式,嘿!這個要各憑本事,無法言傳了。

  這個一維轉二維的公式,還可以發展成通用公式,也就是可以通用在不同的二維欄數,以及不同的資料起始位置。通用公式如下:

=INDEX(資料欄絕對位置,
(ROW(A1)-1)*二維欄位寬度+COLUMN(A1)+資料第一列位置-1)

  以上圖為例,原始資料起始位置 A1,要轉成3欄,新資料起始位置為 C3,則

  • 資料欄絕對位置 = $A:$A (A1 的 A)
  • 二維欄位寬度 = 3
  • 資料第一列位置 = 1 (A1 的 1)
  • 公式放在 C3

  通用公式用上面的值代入後,就是前面的第一個公式了。

  補充一點,格式轉換成功後,如果想把原始資料刪除,可以先把轉換後的資料〔複製〕〔選擇性貼上〕〔貼上〕到另一個新的位置即可。

0 意見: