I was working on a project where I encountered a challenge. There were over 14,000 rows of data, and many rows were repeated based on values in Column A. To address this, I wrote a macro to move duplicate entries into rows, aligning them horizontally. I’m sharing this macro with you—feel free to use it and leave feedback!
VBA Macro: Rearrange Duplicate Columns into Rows
Dim a, n As Long, i As Long, u()
Dim g, m As Integer, k As Integer
a = Range("A1").CurrentRegion
n = UBound(a, 1)
ReDim u(1 To n, 1 To 5)
For i = 1 To n
If a(i, 1) <> g Then
k = k + 1
g = a(i, 1)
m = 2
u(k, 1) = a(i, 1)
u(k, 2) = a(i, 2)
Else
m = m + 1
If m > 5 Then ReDim Preserve u(1 To n, 1 To m)
u(k, m) = a(i, 2)
End If
Next i
u(1, 1) = "Macro output"
Range("E1").Resize(k, UBound(u, 2)) = u
End Sub
How to Use:
- Copy the code into the VBA editor (press
Alt + F11
in Excel, then go toInsert > Module
). - Run the macro on a dataset where Column A has duplicate identifiers and Column B has corresponding values.
- The output will appear starting from Column E, with duplicates arranged in rows.