将具有多行数据的列转换为Excel中具有多列的行。

我有数据组织在多行的cloumns,我需要转换为多列的行进行数据分析。 例如,

ID Date of entry Location Data1 Data2 1 20101030 1 ab 1 20101030 2 cd 1 20101125 1 wv 1 20101125 2 ed 1 20110314 1 we r 1 20110314 2 ff 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

你必须自己添加头文件,但是这段代码应该做你所需要的:

 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 

如果复制整个表格,然后右键单击要粘贴新数据的位置,则应该给出菜单“select性粘贴”。 从该菜单中select转置。 这应该将列转换为行。

我从互联网上find的一个公式开始,它使用一列列表,并将其布局更改为多列:如果有1000多行,则会得到60行,列中有许多列。 你可以在这里find它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)))

将这个公式复制到你所需要的尽可能多的列中,并根据需要添加尽可能多的行(在我的例子中,我使用了50)

您可以将语法分析器中的“5”更改为每个列布局中所需的字段数,并且可以将“50”更改为每个页面中所需的行数。