Dùng công thức có được không bạn, hay cứ phải VBA.Dạ em chào các anh chị,
Em có bảng dữ liệu bên trái theo hàng ngang, em muốn chuyển dữ liệu sang hàng dọc và theo thứ tự B1, B2.... bằng cách dùng VBA Excel.
Nhưng em không biết thực hiện như thế nào.
Rất mong được mọi người giúp đỡ ạ.
(Đoạn code như hình 1 và hình 2 đều được ạ)
Hình 1
View attachment 273110
Hình 2
View attachment 273111
Thử code.Dạ em chào các anh chị,
Em có bảng dữ liệu bên trái theo hàng ngang, em muốn chuyển dữ liệu sang hàng dọc và theo thứ tự B1, B2.... bằng cách dùng VBA Excel.
Nhưng em không biết thực hiện như thế nào.
Rất mong được mọi người giúp đỡ ạ.
(Đoạn code như hình 1 và hình 2 đều được ạ)
Hình 1
View attachment 273110
Hình 2
View attachment 273111
Sub chuyendoi()
Dim i As Long, lr As Long, arr, kq, a As Long, j As Long
With Sheet1
a = 1
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A4:E" & lr).Value
ReDim kq(1 To UBound(arr) * 3, 1 To 3)
For i = 1 To UBound(arr)
For j = 0 To 2
kq(a + j, 1) = arr(i, 1)
kq(a + j, 2) = arr(i, 5)
kq(a + j, 3) = arr(i, 2 + j)
Next j
a = a + 3
Next i
.Range("H3:J1000").ClearContents
.Range("h3:J3").Resize(a - 1).Value = kq
End With
End Sub
Trong khi chờ các giải pháp khác, Hãy thử xem, (tôi chưa test kỹ)Dạ em chào các anh chị,
Em có bảng dữ liệu bên trái theo hàng ngang, em muốn chuyển dữ liệu sang hàng dọc và theo thứ tự B1, B2.... bằng cách dùng VBA Excel.
Nhưng em không biết thực hiện như thế nào.
Rất mong được mọi người giúp đỡ ạ.
(Đoạn code như hình 1 và hình 2 đều được ạ)
Hình 1
View attachment 273110
Hình 2
View attachment 273111
Hầu hết các dạng này là có thể dùng Power Query.Dùng công thức có được không bạn, hay cứ phải VBA.
Bếu dùng công thức thì mình thực hiện như thế nào ạDùng công thức có được không bạn, hay cứ phải VBA.
Dạ em cám ơn a nhiều,Thử code.
Mã:Sub chuyendoi() Dim i As Long, lr As Long, arr, kq, a As Long, j As Long With Sheet1 a = 1 lr = .Range("A" & Rows.Count).End(xlUp).Row arr = .Range("A4:E" & lr).Value ReDim kq(1 To UBound(arr) * 3, 1 To 3) For i = 1 To UBound(arr) For j = 0 To 2 kq(a + j, 1) = arr(i, 1) kq(a + j, 2) = arr(i, 5) kq(a + j, 3) = arr(i, 2 + j) Next j a = a + 3 Next i .Range("H3:J1000").ClearContents .Range("h3:J3").Resize(a - 1).Value = kq End With End Sub
Trong khi chờ các giải pháp khác, Hãy thử xem, (tôi chưa test kỹ)
Nhấn và 2 nút trên Sh và xem điều gì? Kiểm tra lại
Dạ em cám ơn a nhiều ạ,Hầu hết các dạng này là có thể dùng Power Query.
Microsoft đã biết thích nghi với thời thế, ra những chức năng mới giúp Excel đối phó với những trường hợp dữ liệu không chuẩn. Nhất là tính năng UnPivot chuyển ngang sang dọc (dạng báo cáo crosstabbed sang dạng phát sinh transactional)
Nhưng hầu hết người dùng trên GPE không chịu thích nghi, không thèm tìm hiểu hơn. Dẫu sao thì sử dụng Power Query thì mất công học. Nhờ GPE viết code giùm thì tối đa là copy/paste code, lười thì làm bộ nói "không làm được", đưa cái file lên, tải về có sẵn từ a đến z.
Bạn thử tham khảo. .Nếu dùng công thức thì mình thực hiện như thế nào ạ