Tổng hợp số liệu từ các danh sách không theo trật tự (1 người xem)

Người dùng đang xem chủ đề này

truonggiang73

Thành viên hoạt động
Tham gia
27/6/09
Bài viết
113
Được thích
35
Tôi muốn tổng hợp số liệu từ các danh sách không sắp xếp theo một trật tự nào cả và có trùng nhau. Tôi đã tham khảo trên diễn đàn nhưng vẫn chưa làm được. Mong mọi người giúp đỡ cho.
TG73 chân thành cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi muốn tổng hợp số liệu từ các danh sách không sắp xếp theo một trật tự nào cả. Tôi đã tham khảo trên diễn đàn nhưng vẫn chưa làm được. Mong mọi người giúp đỡ cho.
TG73 chân thành cảm ơn.

Tạm thời làm như trong File
Nếu nhiều sheet Thu nhập thì s/d hàm indirect
---
Tôi nghĩ nên thiết mã NV, lỡ trùng họ & tên thì sao?
 

File đính kèm

Tôi muốn tổng hợp số liệu từ các danh sách không sắp xếp theo một trật tự nào cả. Tôi đã tham khảo trên diễn đàn nhưng vẫn chưa làm được. Mong mọi người giúp đỡ cho.
TG73 chân thành cảm ơn.
Tôi làm cho bạn = ADO: Gom nhóm dữ liệu 3 sheet = Union Query. Sau đó cộng gộp theo tên như sau:

Mã:
Sub TongHop()
Dim lsSQL As String, r As Integer
Dim cnn As New ADODB.Connection
Dim lrs As New ADODB.Recordset

  With cnn
    .ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.FullName & _
                        ";Extended Properties=Excel 8.0;"
    .CursorLocation = adUseClient
    .Open
  End With

        lsSQL = "select [Ho Va Ten],sum([Thu Nhap 1]) as [Tong TN 1], sum([Thu Nhap 2]) as [Tong TN 2], sum([Thu Nhap 3]) as [Tong TN 3] From " & _
                "(select [ho va ten], [Thu Nhap 1], 0 AS [Thu Nhap 2], 0 AS [Thu Nhap 3] From [TNhap1$] " & _
                "Union all " & _
                "select [ho va ten], 0 as [Thu Nhap 1], [Thu Nhap 2], 0 AS [Thu Nhap 3] From [TNhap2$] " & _
                "Union all " & _
                "select [ho va ten], 0 as [Thu Nhap 1], 0 AS [Thu Nhap 2], [Thu Nhap 3] From [TNhap3$]) " & _
                "Group by [ho va ten] "
                
        lrs.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
  With Sheet1
    .Cells.ClearContents
        For i = 0 To (lrs.Fields.Count - 1)
            .Cells(1, i + 1) = lrs.Fields(i).Name
        Next
        .Range("A2").CopyFromRecordset lrs
        r = .Range("A65000").End(xlUp).Row + 2
        .Range("A" & r) = "T" & ChrW(7893) & "ng C" & ChrW(7897) & "ng:"
        .Range("B" & r).FormulaR1C1 = "=SUM(R[-" & r - 2 & "]C:R[-1]C)"
        .Range("C" & r).FormulaR1C1 = "=SUM(R[-" & r - 2 & "]C:R[-1]C)"
        .Range("D" & r).FormulaR1C1 = "=SUM(R[-" & r - 2 & "]C:R[-1]C)"

    End With
    
lrs.Close: Set lrs = Nothing
cnn.Close: Set cnn = Nothing

End Sub
 

File đính kèm

Tôi muốn tổng hợp số liệu từ các danh sách không sắp xếp theo một trật tự nào cả. Tôi đã tham khảo trên diễn đàn nhưng vẫn chưa làm được. Mong mọi người giúp đỡ cho.
TG73 chân thành cảm ơn.

File của bạn chắc dữ liệu cũng không nhiều nên dùng công thức cho khỏe

Nếu muốn code thì tham khảo code này xem sao

PHP:
Sub tonghop()
Dim kqua(), i, j, dl, sh, tim
sh = Array("TNhap1", "TNhap2", "TNhap3")
With Sheet1
  .Range(.[c4], .[e65536].End(3)).ClearContents
  kqua = .Range(.[a4], .[a65536].End(3)).Resize(, 5).Value
End With
For i = 0 To UBound(sh)
  With Sheets(sh(i))
    Set dl = .Range(.[b4], .[b65536].End(3))
  End With
  For j = 1 To UBound(kqua)
    Set tim = dl.Find(kqua(j, 2),,,XlWhole)
      If Not tim Is Nothing Then
        kqua(j, i + 3) = tim.Offset(, 1)
      End If
  Next
Next
Sheet1.[a4].Resize(j - 1, 5) = kqua
End Sub
 
Lần chỉnh sửa cuối:
File của bạn chắc dữ liệu cũng không nhiều nên dùng công thức cho khỏe

Nếu muốn code thì tham khảo code này xem sao

PHP:
Sub tonghop()
Dim kqua(), i, j, dl, sh, tim
sh = Array("TNhap1", "TNhap2", "TNhap3")
With Sheet1
  .Range(.[c4], .[e65536].End(3)).ClearContents
  kqua = .Range(.[a4], .[a65536].End(3)).Resize(, 5).Value
End With
For i = 0 To UBound(sh)
  With Sheets(sh(i))
    Set dl = .Range(.[b4], .[b65536].End(3))
  End With
  For j = 1 To UBound(kqua)
    Set tim = dl.Find(kqua(j, 2))
      If Not tim Is Nothing Then
        kqua(j, i + 3) = tim.Offset(, 1)
      End If
  Next
Next
Sheet1.[a4].Resize(j - 1, 5) = kqua
End Sub

Anh lưu ý rằng code trên chỉ tổng hợp được những tên không trùng.
 
Anh lưu ý rằng code trên chỉ tổng hợp được những tên không trùng.

Mình biết chứ, nhưng cứ để cho tác giả phát hiện ra vấn đề. Không ai lại đi sử dụng tên để làm tiêu chuẩn tính toán.

Nếu để quản lý thông tin dữ liệu thì cách đúng là phải quản lý bằng mã thôi
 
Lần chỉnh sửa cuối:
Mình biết chứ, nhưng cứ để cho tác giả phát hiện ra vấn đề. Không ai lại đi sử dụng tên để làm tiêu chuẩn tính toán.

Nếu để quản lý thông tin dữ liệu thì cách đúng là phải quản lý bằng mã thôi
Nếu mã trùng thì sao anh , dữ liệu phát sinh chắc chắn sẽ có trùng (Có thể 1 mã PS 2 hay nhiều lần), kết quả ra sẽ không chính xác.
 
Bài này dùng Pivot Table là khỏe nhất, khỏi code, khỏi công thức... nhanh gọn và chính xác
 
Dùng Consolidate cũng rất tiện lợi và nhanh gọn Thầy à.
Nhưng mà nó không tự cập nhật khi dữ liệu thay đổi
Ẹc... Ẹc...
Thao tác chọn dữ liệu đều như nhau cho cả 2 công cụ Consolidate và PivotTable (tức tốn thời gian như nhau). Vậy tùy thích mà dùng
 
Tôi xin lỗi do câu hỏi ở #1 chưa hết ý cần hỏi nên đã làm mất thời gian của mọi người.
Vì còn hạn chế về EX và VBA nên chưa thể vận dụng các giúp đỡ của các anh vào công việc được.
Tôi vẫn thường dùng cách như ở FILE đính kèm vẫn cho ra kết quả nhưng vì vừa thủ công và anh em trong phòng không hiểu được công thức nên mỗi lần TH số liệu lại phải nhờ tôi sửa lại công thức. Nhờ các anh chị giúp cho giải pháp gọn nhẹ hơn được không.
TG73 thân chào.
 

File đính kèm

Tôi xin lỗi do câu hỏi ở #1 chưa hết ý cần hỏi nên đã làm mất thời gian của mọi người.
Vì còn hạn chế về EX và VBA nên chưa thể vận dụng các giúp đỡ của các anh vào công việc được.
Tôi vẫn thường dùng cách như ở FILE đính kèm vẫn cho ra kết quả nhưng vì vừa thủ công và anh em trong phòng không hiểu được công thức nên mỗi lần TH số liệu lại phải nhờ tôi sửa lại công thức. Nhờ các anh chị giúp cho giải pháp gọn nhẹ hơn được không.
TG73 thân chào.
Dùng hàm sumif kết hợp với hàm indirect. Bạn xem file đính kèm nhé.
 

File đính kèm

Pivot table quả là hay quá, đa số những bài tổng hợp dữ liệu trong thực tế mình cần nó đều có thể thực hiện được
 

File đính kèm

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

Back
Top Bottom