[ Xin trợ giúp ] Dồn dữ liệu từ nhiều cột về một cột

Liên hệ QC

manhkienbka

Thành viên mới
Tham gia
14/6/17
Bài viết
2
Được thích
0
Giới tính
Nam
Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
 

File đính kèm

Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
Thay số 255 thành 1000 thử xem (và đương nhiên phải thay 254 thành 999)
-------------------
Mà bài này bạn cần gì đến "đao to" JoinText chứ? Công thức thường cũng được vậy! (INDEX bình thường là ra)
 
Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
Bạn thử:
PHP:
Sub abc()
Dim i, LR As Long, LC As Integer, j As Integer, LR2 As Long
LR = Range("C" & Rows.Count).End(3).Row
LC = Cells(1, Columns.Count).End(xlToLeft).Column
   For j = 1 To LC
      LR2 = Cells(Rows.Count, j).End(3).Row
      Range(Cells(1, j), Cells(LR2, j)).Copy Cells(LR + 1, 1)
      LR = Range("A" & Rows.Count).End(3).Row
  Next j
 Application.CutCopyMode = False
 End Sub
 
Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
dùng thử code
Mã:
Sub GPE()
Dim LastRcolA As Long, LastR As Long, j As Long
Range("A1:A" & Range("A" & Rows.Count).End(3).Row).ClearContents
LastRcolA = 1
For j = 3 To Cells(1, Columns.Count).End(xlToLeft).Column
  LastR = Cells(Rows.Count, j).End(xlUp).Row
  Range("A" & LastRcolA).Resize(LastR).Value = Cells(1, j).Resize(LastR).Value
  LastRcolA = Range("A" & Rows.Count).End(xlUp).Row + 1
Next j
End Sub
 
Thay số 255 thành 1000 thử xem (và đương nhiên phải thay 254 thành 999)
-------------------
Mà bài này bạn cần gì đến "đao to" JoinText chứ? Công thức thường cũng được vậy! (INDEX bình thường là ra)
Em thử sửa thành 1000 và 999 thì báo lỗi bác ak
Cảm ơn bác để em thử index xem sao

Bạn thử:
PHP:
Sub abc()
Dim i, LR As Long, LC As Integer, j As Integer, LR2 As Long
LR = Range("C" & Rows.Count).End(3).Row
LC = Cells(1, Columns.Count).End(xlToLeft).Column
   For j = 1 To LC
      LR2 = Cells(Rows.Count, j).End(3).Row
      Range(Cells(1, j), Cells(LR2, j)).Copy Cells(LR + 1, 1)
      LR = Range("A" & Rows.Count).End(3).Row
  Next j
 Application.CutCopyMode = False
 End Sub

Cảm ơn bác nhiều. Code này ổn đó bác

dùng thử code
Mã:
Sub GPE()
Dim LastRcolA As Long, LastR As Long, j As Long
Range("A1:A" & Range("A" & Rows.Count).End(3).Row).ClearContents
LastRcolA = 1
For j = 3 To Cells(1, Columns.Count).End(xlToLeft).Column
  LastR = Cells(Rows.Count, j).End(xlUp).Row
  Range("A" & LastRcolA).Resize(LastR).Value = Cells(1, j).Resize(LastR).Value
  LastRcolA = Range("A" & Rows.Count).End(xlUp).Row + 1
Next j
End Sub

Cảm ơn bác nhiều code này ổn nhưng thấy dữ liệu gộp vào tầm 20 dòng đầu đều thêm dấu " ' " ở mỗi dòng
 
Em thử sửa thành 1000 và 999 thì báo lỗi bác ak
Cảm ơn bác để em thử index xem sao



Cảm ơn bác nhiều. Code này ổn đó bác



Cảm ơn bác nhiều code này ổn nhưng thấy dữ liệu gộp vào tầm 20 dòng đầu đều thêm dấu " ' " ở mỗi dòng
Bạn hãy xóa hết dữ liệu ở cột A, rồi chạy Code của anh HieuCD, thử xem.
 
Gửi các bác GPE
Em đang muốn dồn tất cả dữ liệu ở các cột về 1 cột theo thứ tự từng cột. Dữ liệu của em khá dài tầm 50 cột và 1000 hàng mỗi cột. Số hàng mỗi cột không giống nhau
Em có tham khảo trên diễn đàn dùng VBA nhưng ko thành công. File đính kèm em đã thử dùng VBA và công thức
=+TRIM(MID(SUBSTITUTE(JoinText(",",$C$1:$D$10),",",REPT(" ",255)),ROWS($1:1)*255-254,255))
Bác nào có kinh nghiệm khoản này trợ giúp em với
Nếu mỗi cột tối đa có 1000 dòng thì có thể dùng code này:
PHP:
Sub noi()
Dim num2 As Long
For num2 = 3 To [ZZ1].End(xlToLeft).Column
    [a1:a2000].Offset(0, num2 - 1).Copy Range("A" & [a65000].End(xlUp).Row + 1)
Next num2
End Sub
 
Web KT

Bài viết mới nhất

Back
Top Bottom