Excel数据格式

Excel数据格式,excel,vba,Excel,Vba,我正在努力格式化下表。目标是从表1转到表2。下图显示了一个来自大型数据集的示例。如何将表1转换为表2?谢谢。您没有转换数据(沿X=-y对角线翻转数据);您正在将二维范围转换为一维范围 此外,这一点已经得到了回答:我想你想要的是一个取消预约。它实际上是Excel 2013中的原生版本,但对于之前的版本,您必须修改自己的版本。下面是一个基于一些示例数据的基本示例。如果你做一些小的调整来适应你的实际射程位置,这应该能让你达到90%的射程 Sub Unpivot() Dim headerRow,

我正在努力格式化下表。目标是从表1转到表2。下图显示了一个来自大型数据集的示例。如何将表1转换为表2?谢谢。

您没有转换数据(沿X=-y对角线翻转数据);您正在将二维范围转换为一维范围


此外,这一点已经得到了回答:

我想你想要的是一个取消预约。它实际上是Excel 2013中的原生版本,但对于之前的版本,您必须修改自己的版本。下面是一个基于一些示例数据的基本示例。如果你做一些小的调整来适应你的实际射程位置,这应该能让你达到90%的射程

Sub Unpivot()

  Dim headerRow, row, newRow, col As Integer
  Dim ws1, ws2 As Worksheet

  Set ws1 = Sheets(1)
  Set ws2 = Sheets(2)

  headerRow = 2
  row = 4
  newRow = 4

  While ws1.Cells(row, 1).Value <> ""
    col = 5
    While (ws1.Cells(headerRow, col) <> "")
      ws2.Range("A" & newRow & ":D" & newRow).Value = _
          ws1.Range("A" & row & ":D" & row).Value
      ws2.Cells(newRow, 5).Value = ws1.Cells(headerRow, col).Value
      ws2.Cells(newRow, 6).Value = ws1.Cells(row, col).Value
      newRow = newRow + 1
      col = col + 1
    Wend

    row = row + 1
  Wend

End Sub
Sub Unpivot()
Dim headerRow、row、newRow、col为整数
将ws1、ws2标注为工作表
设置ws1=图纸(1)
设置ws2=图纸(2)
headerRow=2
行=4
纽罗=4
而ws1.Cells(行,1.Value“”
col=5
While(ws1.Cells(headerRow,col)”)
ws2.Range(“A”&newRow&“:D”&newRow)。值=_
ws1.Range(“A”&行&“:D”&行).Value
ws2.Cells(newRow,5).Value=ws1.Cells(headerRow,col).Value
ws2.Cells(newRow,6).Value=ws1.Cells(row,col).Value
newRow=newRow+1
col=col+1
温德
行=行+1
温德
端接头
示例输入,包括行和列:

样本输出:


我感谢您的回复,请您在我的示例中演示一下。我是一个初学者,在链接中尝试了这个公式,但没有成功。