2013-05-02 75 views
1

與多個類別,高大寬的數據我在Excel中的數據集,看起來像這樣:重塑在Excel

Date Country1-GDP Country2-GDP Country1-Unemp Country2-Unemp 

,我想製作一個標準化的數據集是這樣的:

Date1 Country1_Name Country1-GDP Country1-Unemp 
Date1 Country2_Name Country2_GDP Country2_Unemp 
Date2 Country1_Name Country1-GDP Country1-Unemp 

我想在VBA中這樣做,這樣我就可以直接在excel中將它作爲宏調用,然後將數據拉入。

任何想法或指針?

+1

會不會有始終是相同的多個國家的任何命令的數據?列的名稱,國內生產總值,Unemp等會一直保持不變嗎? – Simon1979 2013-05-02 04:13:52

+1

您在哪裏使用'CountryX_Name'列表,因爲在您的基礎數據集中沒有這樣的內容? – 2013-05-02 05:32:21

+0

@ simon1979國家數量可以改變,我有一個名稱範圍,其中列出的國家 – 2013-05-02 21:35:06

回答

1

首先一定要打破你的問題分成更小的問題:

查找紙張佈局

確定各國的

數(所以你知道不同的數據範圍)國家1作爲其餘的基礎

收集國家1列並添加國家名稱列(u se .xlEnd命令將其應用於正確數量的單元格,或者與日期列相比,.OFFSET)。

我們需要爲此設置國家名稱。我想國家名稱在列標題中(後面跟着-GDP,-UnEmp等,所以你可以很容易地從-GDP列中得到它,例如= LEFT(Range.Value2; LEN(Range.Value2) -4),它在過去4個charancters斷保持這個作爲一個局部變量

保留日期範圍的副本(列A:A)進行再利用

我們將存儲的副本日期的範圍,因爲我們將在每個其他國家/地區使用該日期粘貼A列中的日期:A

使用來自國家/地區的佈局1

現在我們開始循環遍歷所有國家的2-N。在A列下粘貼存儲的日期副本:A(如此爲1個國家設置1個),獲取coutnry名稱(與國家1相同)和把它放在剛粘貼的日期旁邊。 按國家/地區選擇該國家/地區的不同國家/地區特徵,並在相應的國家/地區1列下移動數據。

排序表格

排序在你想(在你的情況下,日期/國家)

+0

非常感謝,只有一個小問題與'保留日期範圍的副本複用'。這可能看起來真的很新奇,但是在內存中創建和存儲臨時範圍的最佳方式是什麼? – 2013-05-03 04:35:10

+0

創建一個'Range'對象('Dim rDates as Range')。將它指向A2:Axxx中的日期範圍('Set rDates = Range(fromcell,tocell)')。我猜'fromcell'(也是'Range')應該是Range(「A2」)''和'tocell'類似於'Range(「A2」)。End(xlDown)''。 – 2013-05-03 07:37:40