2017-08-10 88 views
1

我有数据,如下面的图片:Excel中的数据来排

enter image description here

我需要(与宏)排列数据,以便与多家每一行高程\方位角后第一行,就像图片中:

enter image description here

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

+0

这可以在VBA做容易,如果你知道如何编写宏,然后写一个循环来再检查一遍柱一种'Elevation'嵌套循环移动数据拳头行,因为你需要。让我们知道你是否卡在某个地方,你会帮助你。 – Shrikant

+0

即时通讯不擅长自己写宏,我可以做一些更正,为我的情况工作宏:)所以,如果你可以给我一些宏代码基本我会弄清楚:) @Shirikant –

+0

有多少条记录你喜欢'Elevation'并且是固定到9个单元的数据/ – Shrikant

回答

2

这不是测试。你可以试试看。下面的内容也可以用不同的方式写入。

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 
+0

,您可以在数据未固定到列“I”时进行偏移。就像这样'Range(“A”&ActiveCell.Row + 1,activecell.offset(1,datacount)' – Shrikant

+0

它不工作,我不知道什么是不正确的。它只是想着(纺纱轮)我知道如何说正确的,我按Esc停止:)然后我可以看到“选择”或对象“范围”失败,然后按degug它; s显示此:范围(“A”和我)。选择。 @Shrikant –

+0

对不起,我忘了把一行代码。我=我+ 1 – Shrikant

2

这也可以在不使用宏的情况下完成。 我假设你最后一列的数据在那里是列I,而行数是11.你想填满第I行后面第11行的所有单元格,即J11,K11 ....值正好低于I11

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

+0

它只用一列值排,我需要所有列值在一行:)但是,谢谢,我是一个很好的公式,我相信我可以使用它一天:) @ user8441712 –

+1

你的意思是说从说, B12到I50应该完全在那里?这可以通过= INDEX($ B $ 12:$ I $ 1000,ROUNDDOWN((COLUMN(B1)-2)/ 7,0)+ 1,MOD(COLUMN(B1)-2,7)+1)完成。我假设你的数据有7列。因此,索引中的行号会在每7个单元格后附加1,并且列索引从1到7进行迭代,随着从单元格移动到单元格 – harinp715