Tổng hợp dữ liệu từ nhiều cột vào một cột

Liên hệ QC

htnhtn

Thành viên mới
Tham gia
23/5/09
Bài viết
12
Được thích
1
Em có danh sách học sinh được lập trên nhiều cột khác nhau. Giờ em muốn tổng hợp lại vào 1 cột xin mọi người giúp đỡ cách làm
Hoi 1.jpgHoi 2.jpg
 

File đính kèm

  • Hoi.xls
    18 KB · Đọc: 20
Lần chỉnh sửa cuối:
Thử cái này xem nhé :
PHP:
Sub Tonghop()
Dim i As Long
Dim aD As Range, aD1 As Range, aD2 As Range
With Sheets("Dulieu")
For i = 1 To 5
Set aD = .Cells(65536, i).End(xlUp)
    .Range(.Cells(2, i), aD).Copy Sheets("Tonghop").[B65536].End(xlUp).Offset(1, 0)
    Set aD1 = Sheets("Tonghop").[B65536].End(xlUp).Offset(0, 1)
    Set aD2 = Sheets("Tonghop").[C65536].End(xlUp).Offset(1, 0)
    Range(aD1, aD2).Value = .Cells(1, i).Value
Next
Range(Sheets("Tonghop").[B65536].End(xlUp).Offset(0, -1), Cells(4, 1)) = "=row()-3"
End With
End Sub
 

File đính kèm

  • Hoi.xls
    43.5 KB · Đọc: 19
Góp vui cùng ...hoa Còi... 1 code nhé:
PHP:
Public Sub GPE()
Dim Rng(), Arr(1 To 1000, 1 To 3), i As Long, J As Long, K As Long
Rng = Sheets("Dulieu").[A1:A50].Resize(, 5).Value
For J = 1 To 5
    For i = 2 To 50
        If Rng(i, J) <> "" Then
            K = K + 1: Arr(K, 1) = K
            Arr(K, 2) = Rng(i, J): Arr(K, 3) = Rng(1, J)
        End If
    Next i
Next J
With Sheets("Tonghop")
    .[A4:C1000].ClearContents
    If K Then .[A4].Resize(K, 3).Value = Arr
End With
End Sub
 
Thử cái này xem nhé :
PHP:
Sub Tonghop()
Dim i As Long
Dim aD As Range, aD1 As Range, aD2 As Range
With Sheets("Dulieu")
For i = 1 To 5
Set aD = .Cells(65536, i).End(xlUp)
    .Range(.Cells(2, i), aD).Copy Sheets("Tonghop").[B65536].End(xlUp).Offset(1, 0)
    Set aD1 = Sheets("Tonghop").[B65536].End(xlUp).Offset(0, 1)
    Set aD2 = Sheets("Tonghop").[C65536].End(xlUp).Offset(1, 0)
    Range(aD1, aD2).Value = .Cells(1, i).Value
Next
Range(Sheets("Tonghop").[B65536].End(xlUp).Offset(0, -1), Cells(4, 1)) = "=row()-3"
End With
End Sub

Cảm ơn bạn nhiều nhé. Nhưng mình không hiểu về VBA mấy, bạn có thể giải thích thêm được không? Nếu như sheets dulieu có thêm nhiều lớp nữa thì làm thế nào để tổng hợp được
 
Thất nghiệp buồn quá nên cũng tham gia góp vui

PHP:
Sub Tonghop2()
Dim dl(), i, j, k, kq(1 To 65000, 1 To 3)
dl = Sheets("Dulieu").UsedRange.Value
For i = 1 To UBound(dl, 2)
   For j = 2 To UBound(dl)
      If dl(j, i) <> "" Then
         k = k + 1
            kq(k, 1) = k
               kq(k, 2) = dl(j, i)
                  kq(k, 3) = dl(1, i)
      End If
   Next
Next
Sheets("Tonghop").[A4:C10000].ClearContents
If k Then Sheets("Tonghop").[A4].Resize(k, 3) = kq
End Sub
 
Lần chỉnh sửa cuối:
Chẳng biết bạn thử thế nào mình thấy nó vẫn được đấy chứ. Vẫn chạy như Ngựa

Mã:
Sub Tonghop()
Dim Rng(), Arr(1 To 1000, 1 To 3), i As Long, J As Long, K As Long
Rng = Sheets("Dulieu").[A1:A50].Resize(, 5).Value
For J = 1 To 5
    For i = 2 To 50
        If Rng(i, J) <> "" Then
            K = K + 1: Arr(K, 1) = K
            Arr(K, 2) = Rng(i, J): Arr(K, 3) = Rng(1, J)
        End If
    Next i
Next J
With Sheets("Tonghop")
    .[A4:C1000].ClearContents
    If K Then .[A4].Resize(K, 3).Value = Arr
End With
End Sub
Của bạn đã thay code rồi mà, mình có bít gì món này đâu
Mã:
Sub Tonghop()
Dim i As Long
Dim aD As Range, aD1 As Range, aD2 As Range
With Sheets("Dulieu")
For i = 1 To 8
Set aD = .Cells(65536, i).End(xlUp)
    .Range(.Cells(2, i), aD).Copy Sheets("Tonghop").[B65536].End(xlUp).Offset(1, 0)
    Set aD1 = Sheets("Tonghop").[B65536].End(xlUp).Offset(0, 1)
    Set aD2 = Sheets("Tonghop").[C65536].End(xlUp).Offset(1, 0)
    Range(aD1, aD2).Value = .Cells(1, i).Value
Next
Range(Sheets("Tonghop").[B65536].End(xlUp).Offset(0, -1), Cells(4, 1)) = "=row()-3"
End With
End Sub
 
Của bạn đã thay code rồi mà, mình có bít gì món này đâu
Nếu không biết gì về "món này" thì chỉ cần biết Enable Macros.
Sheet Dulieu có thể đến 250 lớp, mỗi lớp 99 Học sinh.
Mở sheet Dulieu xem, chỉnh sửa tuỳ ý, điều kiện: dòng 1 phải là tên lớp, mỗi cột là ds lớp từ dòng 2-100.
Mở sheet Tonghop là tự động cập nhật danh sách mới, không phải làm gì cả.
 

File đính kèm

  • Copy of Hoi-1.rar
    10 KB · Đọc: 18
Nếu dữ liệu bạn ấy đưa ra không phải dữ liệu thật và mọi thứ chỉ mang tính giả định, dữ liệu thật bố trí lệch pha thì hướng dẫn cũng công cốc bác BATE ạ.

Giờ bắt ngồi giải thích tại sao nó lại thế để tùy biến áp dụng vào file thực thì chắc chết, HIX!
 
Em muốn hỏi cách làm để biết thôi. Còn trường hợp của em danh sách có 25 lớp, được bố trí từ cột J đến cột AH. Từ cột A-I là dữ liệu khác. Danh sách tổng hợp cũng có kẻ ô nữa. Mong được các anh chị em chỉ rõ hơn ạ.
 

File đính kèm

  • Hoi 2.xls
    70.5 KB · Đọc: 6
Em muốn hỏi cách làm để biết thôi. Còn trường hợp của em danh sách có 25 lớp, được bố trí từ cột J đến cột AH. Từ cột A-I là dữ liệu khác. Danh sách tổng hợp cũng có kẻ ô nữa. Mong được các anh chị em chỉ rõ hơn ạ.
Cách làm thì đã có rồi, bạn tiếp tục thực hiện đi.
Giống như bạn muốn biết câu cá như thế nào để bạn "bắt chước", bây giờ đã thấy người khác câu rồi, bạn câu thử xem, biết đâu câu được cá lớn hơn thì sao.
------------
Nếu dữ liệu bạn ấy đưa ra không phải dữ liệu thật và mọi thứ chỉ mang tính giả định, dữ liệu thật bố trí lệch pha thì hướng dẫn cũng công cốc bác BATE ạ.

Giờ bắt ngồi giải thích tại sao nó lại thế để tùy biến áp dụng vào file thực thì chắc chết, HIX!
-> Hoa Còi làm "thầy bói" hốt bạc!
Ẹc...
 
Lần chỉnh sửa cuối:
Cách làm thì đã có rồi, bạn tiếp tục thực hiện đi.
Giống như bạn muốn biết câu cá như thế nào để bạn "bắt chước", bây giờ đã thấy người khác câu rồi, bạn câu thử xem, biết đâu câu được cá lớn hơn thì sao.

Cảm ơn bác Bate nhiều nhé. Em đang làm thử, có gì em lại hỏi bác tiếp
 
Web KT

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

Back
Top Bottom