Làm cách nào để chuyển các hàng trùng lặp sang cột trong Excel?
Giả sử bạn có một loạt dữ liệu trong Excel, bây giờ, bạn muốn chuyển các hàng trùng lặp thành nhiều cột như hình minh họa sau đây, bạn có ý tưởng hay nào để giải quyết công việc này không?
Chuyển các hàng trùng lặp sang cột bằng mã VBA
Chuyển các hàng trùng lặp sang cột bằng mã VBA
Rất tiếc, không có cách nào trực tiếp để bạn giải quyết nó trong Excel, nhưng bạn có thể tạo mã VBA để giải quyết nó, vui lòng làm như sau:
1. Giữ phím tắt ALT + F11 phím để mở Cửa sổ Microsoft Visual Basic for Applications.
2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.
Mã VBA: Chuyển các hàng trùng lặp thành nhiều cột
Sub ConvertTable()
'Updateby Extendoffice
Dim xArr1 As Variant
Dim xArr2 As Variant
Dim InputRng As Range, OutRng As Range
Dim xRows As Long
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xArr1 = InputRng.Value
t = UBound(xArr1, 2): xRows = 1
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 2 To UBound(xArr1, 1)
If Not .exists(xArr1(i, 1)) Then
xRows = xRows + 1: .Item(xArr1(i, 1)) = VBA.Array(xRows, t)
For ii = 1 To t
xArr1(xRows, ii) = xArr1(i, ii)
Next
Else
xArr2 = .Item(xArr1(i, 1))
If UBound(xArr1, 2) < xArr2(1) + t - 1 Then
ReDim Preserve xArr1(1 To UBound(xArr1, 1), 1 To xArr2(1) + t - 1)
For ii = 2 To t
xArr1(1, xArr2(1) + ii - 1) = xArr1(1, ii)
Next
End If
For ii = 2 To t
xArr1(xArr2(0), xArr2(1) + ii - 1) = xArr1(i, ii)
Next
xArr2(1) = xArr2(1) + t - 1: .Item(xArr1(i, 1)) = xArr2
End If
Next
End With
OutRng.Resize(xRows, UBound(xArr1, 2)).Value = xArr1
End Sub
3. Sau đó nhấn F5 để chạy mã này, chọn phạm vi dữ liệu mà bạn muốn chuyển đổi các hàng trùng lặp thành nhiều cột trong hộp thoại bật ra, xem ảnh chụp màn hình:
4. Nhấp chuột OKvà chọn một ô mà bạn muốn đặt kết quả vào hộp thoại sau, xem ảnh chụp màn hình:
5. Và sau đó nhấp vào OK , dữ liệu đã chọn của bạn đã được chuyển đổi thành sau:
Các bài liên quan:
Làm thế nào để chuyển vị / chuyển đổi các cột và hàng thành một hàng?
Làm thế nào để chuyển / chuyển đổi các cột và hàng thành một cột?
Làm cách nào để chuyển / chuyển đổi một cột đơn thành nhiều cột trong Excel?
Công cụ năng suất văn phòng tốt nhất
Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian. Bấm vào đây để có được tính năng bạn cần nhất...
Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều
- Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
- Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
- Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!