2012-09-27 83 views
1

我有數據組織在多行的cloumns中,我需要將其轉換爲多列用於數據分析的行。例如,將具有多行數據的列轉換爲Excel中具有多列的行。

ID Date of entry Location Data1 Data2 
    1 20101030  1   a  b 
    1 20101030  2   c  d 
    1 20101125  1   w  v 
    1 20101125  2   e  d 
    1 20110314  1   we  r 
    1 20110314  2   f  f 
    2 20091024  1   ewr  rte 
    2 20091024  2   gr  ert 
    3 20061128  1   jy  bf 
    3 20061128  2   u  df 
    3 20110517  1   rd  fd 
    3 20110517  2   sg  sd 

成這種格式與每個ID一行(如下所示僅頭行)多列數據

ID entry_1 Dateofentry location_1 data1 data2 location_2 data1 data2 entry_2 Dateofentry location_1 data1 data2 location_2 data1 data2 entry_3 Dateofentry location_1 data1 data2 location_2 data1 data2 

任何人都可以協助?

謝謝! GT

+0

你對此是否開放宏?你有多少行數據?你使用的是什麼版本的Excel? – hydrox467

回答

0

如果複製整個表,那麼無論你要粘貼新的數據上單擊右鍵,你應該給菜單中的「粘貼」。從該菜單中選擇轉置。這應該將列轉換爲行。

+0

我打算髮表相同的答案,但這並不會將數據轉換爲OP要求的格式。 – hydrox467

+0

是的,這是我唯一不確定的事情,但我不太確定他在找什麼,因爲示例輸出沒有使用示例輸入中的數據。 – 10gistic

1

你必須自己添加標題,但是這個代碼應該做你需要的東西:

Sub ConsolidateRows_SpreadAcross() 

Dim lastRow As Long, i As Long, j As Long 
Dim colMatch As Variant, colConcat As Variant 

application.ScreenUpdating = False 'disable ScreenUpdating to avoid screen flashes 

lastRow = range("A" & Rows.Count).End(xlUp).Row 'get last row 

For i = lastRow To 2 Step -1 

    If Cells(i, 2) = Cells(i - 1, 2) Then 
     range(Cells(i, 3), Cells(i, Columns.Count).End(xlToLeft)).Copy Cells(i - 1, Columns.Count).End(xlToLeft).Offset(, 1) 
     Rows(i).Delete 
    Else 
     If Cells(i, 1) = Cells(i - 1, 1) Then 
      range(Cells(i, 2), Cells(i, Columns.Count).End(xlToLeft)).Copy _ 
       Cells(i - 1, Columns.Count).End(xlToLeft).Offset(, 1) 
      Rows(i).Delete 
     End If 
    End If 

Next 

application.ScreenUpdating = True 'reenable ScreenUpdating 
End Sub 
0

我從一個公式我,它有一個列列表,並改變在互聯網上找到啓動它的佈局到多行列:1000行以上,你會得到60行,列中有很多列。 你可以在這裏找到它http://help.lockergnome.com/office/list-multiple-columns-page--ftopict935389.html

我想列出有4列(第5列爲空)和1000 +行,並使其成爲50行表,4場重複自己。

,比如我有:

family | name | amount | table | 
fam1 | shlomi | 2  | 38 | 
fam2 | hila | 4  | 23 |  
....  
fam1000 | avi | 1  | 15 | 

,我希望把它

family | name | amount | table |  |fam50 | ben | 2  | 68 | ...  
fam1 | shlomi | 2  | 38 |  ...  
fam2 | hila | 4  | 23 |  ...  
...           ...  
fam49 | dror | 1  | 15 |  |fam99 | dror | 1  | 15 | ... 

在一個新的工作表中現有的工作簿中插入下列公式A1:

= IF(OFFSET(Sheet 1中$ A $ 1,QUOTIENT(COLUMN(),5)* 50 + ROW() - 1,MOD(COLUMN() - 1,5))= 「」, 「」,OFFSET(Sheet 1中$ A $ 1,QUOTIENT(COLUMN(),5)* 50 + ROW() - 1,MOD(COLUMN() - 1,5)))

..複製此公式跨越的列數,因爲你需要,並儘可能多的行,因爲你需要在furmula(我在我的例子中使用50)

你可以改變「5」字段數你希望在每個列布局中, ,並且您可以將'50'更改爲每個頁面中所需的行數。

相關問題