Excel重构使用公式/macros

我有一个excel表,看起来像这样:

在这里输入图像说明

我需要能够自动重新格式化,如下所示:

在这里输入图像说明

我尝试了所有可能的公式,以及数据透视表的每一种可能的变化,但是找不到任何事情,甚至远远地让我到我想要的地方。 例如,将Vlookups添加到其他列中,然后生成4个表并合并过于手动,这样才能使用。 尝试使用索引/匹配,也没有工作,因为它太手动。 在现实生活中,这张桌子的大小会有所不同,所以调整“重新格式化”的桌子并不是真正的最佳select。 任何想法,build议都比欢迎!

有了这样的数据:

在这里输入图像说明

这个短小的macros:

Sub ReOrganizeData() Dim i As Long, j As Long, K As Long, N As Long Dim v As Variant N = Cells(Rows.Count, "A").End(xlUp).Row K = 2 For j = 2 To 5 For i = 3 To N v = Cells(i, j) If v <> "" Then Cells(K, "H") = Cells(i, "A") Cells(K, "I") = v Cells(K, "J") = Cells(2, j) K = K + 1 End If Next i Next j End Sub 

会产生:

在这里输入图像说明

基本上可能这里详细介绍的过程。 然而在你的情况下,你将需要在结果表中切换ColumnValue的顺序,转换为范围,以便能够在列内的行上进行sorting,并筛选从Valueselect和删除空白行。 此外,您将需要更改列标签。