从列到行的Excel数据

我有如下图所示的数据:

在这里输入图像说明

我需要(用一个macros)安排数据,以便ELEVATION \ AZIMUTH之后的每​​一行都在第一行,如图所示:

在这里输入图像说明

我有很多这样的数据行。 也许任何人都可以帮忙?

这没有经过testing。 你可以试试看。 下面也可以用diff来写。

  Sub test1() Dim LastRow, DataCount, temp As Double i = 1 LastRow = 1 Do While LastRow <> 0 Range("A" & i).Select If ActiveCell.Value = "ELEVATION\AZIMUTH" Then 'Cut all three row and paste DataCount = Application.WorksheetFunction.CountA(Range(i & ":" & i)) Range("A" & ActiveCell.Row + 1, "I" & ActiveCell.Row + 1).Cut ActiveCell.Offset(0, DataCount) Range("A" & ActiveCell.Row + 2, "I" & ActiveCell.Row + 2).Cut ActiveCell.Offset(0, DataCount * 2) Range("A" & ActiveCell.Row + 3, "I" & ActiveCell.Row + 3).Cut ActiveCell.Offset(0, DataCount * 3) Else LastRow = Application.WorksheetFunction.CountA(Range("A" & i, "A" & i + 10)) End If i = i + 1 Loop End Sub 

这也可以在不使用macros的情况下完成。 我假设你的最后一列的数据在那里是第一列,行号是11.你想要填写第十一行之后的第11行的所有单元格,即J11,K11 ….其值正好低于I11

你可以做到这一点,粘贴在J11 J11 = INDEX($ I $ 11:$ I $ 1000,COLUMN(B1),1)拖动整个行的公式,你应该得到你想要的输出