在Excel中创build唯一的导出数据VBAmacrosfunction

新的到这个网站以及新的Excel VBA一般。 我已经得到了一个现有的电子表格,其中有相当多的信息需要处理,并且想知道这里有人能够提供有关创buildVBA函数的深入见解来完成繁重的工作。

我的挑战是有很多数据需要保留在原始格式中,但对于我们的分析来说,数据导出为下面第二张图所示的格式是有用的。

有没有一个函数会循环通过X头,然后返回与相应的Y头相关联的值,并通过不同的组合方式工作?

原始数据格式:

在这里输入图像说明

所需的导出数据格式:

http://i.imgur.com/Slf7SI7.jpg

任何帮助,将不胜感激! 原始数据是不断演变的,所以如果我找不到解决scheme,它会变成一个永无止境的复制粘贴练习。

谢谢,

贾森

更新:感谢提示家伙。 我看着一个unpivot代码,并能够find这个资源,它的工作原理!

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 

结果的图像如下:

http://imgur.com/3KRikBK

我仍然在调整它使用户友好。 任何进一步的提示将不胜感激!