Vba 将excel数据从重复行转换为非重复列

Vba 将excel数据从重复行转换为非重复列,vba,excel,Vba,Excel,我需要转换以下行-列格式。其中名称以各种值重复 Name Value XYZ 1 XYZ 2 XYZ 3 XYZ 4 XYZ 5 XYZ 6 XYZ 7 ABC 7 ABC 6 ABC 5 ABC 4 ABC 3 ABC 2 ABC 1 我需要转换成这种格式 XYZ ABC 1 7 2 6 3 5 4 4 5 3 6 2 7 1 提前感谢您尝试使用脚本字典方法 Option Explicit Sub reG

我需要转换以下行-列格式。其中名称以各种值重复

Name Value
XYZ   1
XYZ   2
XYZ   3
XYZ   4
XYZ   5
XYZ   6
XYZ   7
ABC   7
ABC   6
ABC   5
ABC   4
ABC   3
ABC   2
ABC   1
我需要转换成这种格式

XYZ ABC
1   7
2   6
3   5
4   4
5   3
6   2
7   1

提前感谢您

尝试使用脚本字典方法

Option Explicit

Sub reGroup()
    Dim i As Long
    Dim k As Variant, dXYZs As Object

    Set dXYZs = CreateObject("Scripting.Dictionary")
    dXYZs.CompareMode = vbTextCompare

    With Worksheets("Sheet2")
        For i = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
            If dXYZs.exists(.Cells(i, "A").Value2) Then
                dXYZs.Item(.Cells(i, "A").Value2) = _
                  dXYZs.Item(.Cells(i, "A").Value2) & ChrW(8203) & .Cells(i, "B").Value2
            Else
                dXYZs.Item(UCase(.Cells(i, "A").Value2)) = .Cells(i, "B").Value2
            End If
        Next i

        i = 0
        For Each k In dXYZs.keys
            .Cells(1, 4 + i) = k
            .Cells(2, 4 + i).Resize(UBound(Split(dXYZs.Item(k), ChrW(8203))) + 1) = _
                Application.Transpose(Split(dXYZs.Item(k), ChrW(8203)))
            i = i + 1
        Next k

    End With
End Sub

到目前为止您尝试使用的代码是什么?将
XYZ
ABC
放在各自的列中。在
XYZ
put
=索引($B:$B,聚合(15,6行($B$2:$B$15)/($A$2:$A$15=D$1),行(1:1))下的第一个单元格中,
在一列上复制,向下复制7行。@ScottCraner比您更适合响应。这个公式有错误。@Rdster我不是程序员。我只是不知道该怎么做。注释有时会添加不可打印的字符。输入它,而不是复制。