此站点的新功能以及Excel VBA的新功能。我已经获得了一个包含大量信息的现有电子表格,并且想知道这里的某个人是否能够提供创建VBA功能的洞察力来完成繁重的工作。
我的挑战是,有很多数据需要保留原始格式,但对于我们的分析,可以将数据导出为下面第二张图所示的格式。
是否有一个函数会循环遍历X标题,然后返回与相应Y标题关联的值并通过不同的组合工作?
原始数据格式:
所需的导出数据格式:
对此的任何帮助将不胜感激!原始数据不断发展,如果我找不到解决方案,它将变成一个永无止境的复制粘贴练习。
谢谢,
杰森
更新:感谢提示家伙。我查看了一个unpivot代码,并且能够找到它作为资源,它可以工作!:
Sub NormalizeData()
Dim Rng As Range
Dim WS As Worksheet
On Error Resume Next
Set Rng = Application.InputBox(Prompt:="Select a range to normalize data" _
, Title:="Select a range", Default:=ActiveCell.Address, Type:=8)
On Error GoTo 0
If Rng Is Nothing Then
Else
Application.ScreenUpdating = False
Set WS = Sheet1
i = 0
For c = 1 To Rng.Columns.Count - 1
For r = 1 To Rng.Rows.Count - 1
WS.Range("A2").Offset(i, 0) = Rng.Offset(0, c).Value
WS.Range("A2").Offset(i, 1) = Rng.Offset(r, 0).Value
WS.Range("A2").Offset(i, 2) = Rng.Offset(r, c).Value
i = i + 1
Next r
Next c
WS.Range("A:C").EntireColumn.AutoFit
Application.ScreenUpdating = True
End If
End Sub
结果图像如下:
我还在调整它以使用户友好。任何进一步的提示将非常感谢!