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我不是程序员。我只是不知道该怎么做。注释有时会添加不可打印的字符。输入它,而不是复制。