将数据从多列移动到单行

这个格式问题令我困惑。 我不是Excel的国王,将不胜感激解决我的问题。

我试图按照date格式化多列数据到一行。 即:

在这里输入图像说明

我试图寻找有关转置的解决scheme,但是这似乎更为复杂。 我有每个date的4倍数据结果(如前列所示)。

这里是一个简单的循环,在工作表中自下而上,将最后一行转换成4列,将上面的行复制下来,然后删除上面的行。

Sub TransposeData() Dim WS As Worksheet Dim LastCell As Range Dim LastCellRowNumber As Long Set WS = Worksheets("Sheet1") With WS Set LastCell = .Cells(.Rows.Count, "A").End(xlUp) LastCellRowNumber = LastCell.Row End With 'Loop through column A bottom up For i = LastCellRowNumber To 2 Step -1 'Shift current values over Range("A" & i & ":D" & i).Insert Shift:=xlToRight 'Copy new values down Range("A" & i & ":D" & i).Value = Range("A" & i - 1 & ":D" & i - 1).Value 'Delete row Rows(i - 1).Delete Shift:=xlUp Next i End Sub 

之前:

在这里输入图像说明

后:

在这里输入图像说明

您可以使用NotePad ++统一来自.csv文件的行,然后再次将新格式的信息导入Excel。

1-以逗号分隔值格式(.csv)保存电子表格。
2-在NotePad ++中,点击:Edit-> Line Operations-> Join Lines。
3-用逗号(“,”)replace空格(“”)。 你应该得到3个替代品。

现在你只有一行所有的值用逗号分隔。

4-保存并在Excel中导入这个新文件。

按照这个 ,有几个select:

  1. 第3项 :inputA8

    =OFFSET($A$2,INT((COLUMN()-COLUMN($A$8))/4),MOD(COLUMN()-COLUMN($A$8),4))

    根据需要复制到右侧。

  2. 你也可以使用INDEX