Tổng hợp dữ liệu với cấu trúc dữ liệu dữ liệu khác nhau

Liên hệ QC

vanaccex

Thành viên tiêu biểu
Tham gia
8/7/18
Bài viết
454
Được thích
305
Giới tính
Nữ
Em Vân muốn cộng Tổng Giá trị duy nhất theo điều kiện cột Họ & tên Cột tính tổng là cột ( Lương cơ bản , Thành Tiền , Phụ cấp ăn ca , Phụ cấp công tác phí , Tổng lương)
+ Với bảng loại 1 là từ cột A đến cột J Kết quả hiện thỉ sẽ ở Sheet KetQua01.
+ Với bảng loại 2 là từ cột A đến cột G Kết quả hiện thỉ sẽ ở Sheet KetQua02.
Em Vân Cảm ơn anh (chị) trên diễn đàn Giaiphapexcel ạ !
 

File đính kèm

  • TongHopDuLieu.xls
    134 KB · Đọc: 7
Lần chỉnh sửa cuối:
Em Vân muốn cộng Tổng Giá trị duy nhất theo điều kiện cột Họ & tên Cột tính tổng là cột ( Lương cơ bản , Thành Tiền , Phụ cấp ăn ca , Phụ cấp công tác phí , Tổng lương)
+ Với bảng loại 1 là từ cột A đến cột J Kết quả hiện thỉ sẽ ở Sheet KetQua01.
+ Với bảng loại 2 là từ cột A đến cột G Kết quả hiện thỉ sẽ ở Sheet KetQua02.
Em Vân Cảm ơn anh (chị) trên diễn đàn Giaiphapexcel ạ !
Lương căn bản bạn tính như thế nào? Bạn cần cộng tổng hay chỉ gom nhóm cột này?
Cột thành tiền cho báo cáo 02 là Tổng lương?
 
Upvote 0
Upvote 0
Dạ cột thành tiền cho báo cáo 02 là cột Thành tiền của Của loại bảng 02 anh ạ !
Bạn dùng code sau nhé:

Mã:
Sub KetQua01()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet3.Range("B2").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5),sum(F6),sum(F7),sum(F8) from [Data$B9:I] where F2 is not null and F2 <>'CV' group by F1,F2")
    End With
   
End Sub
Sub KetQua02()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("B2").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5) from [Data$B9:I] where F2 is not null and F2 <>'CV' group by F1,F2")
    End With
   
End Sub
 
Upvote 0
Bạn dùng code sau nhé:

Mã:
Sub KetQua01()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet3.Range("B2").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5),sum(F6),sum(F7),sum(F8) from [Data$B9:I] where F2 is not null and F2 <>'CV' group by F1,F2")
    End With

End Sub
Sub KetQua02()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("B2").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5) from [Data$B9:I] where F2 is not null and F2 <>'CV' group by F1,F2")
    End With

End Sub
Dạ code vẫn chưa chạy đúng ý em Vân ạ, với Phần cấu trúc bảng 2 là vẫn chưa phân biệt được so với bảng 01 mà đang được cộng tổng tất cả ạ !
 
Upvote 0
Upvote 0
Có nghĩa là các bảng có cấu trúc từ A đến I sẽ cộng vào 1 sheet kết quả, Và các bảng có cấu trúc từ A đến G sẽ cộng vào sheet kết quả anh ạ
Bạn thử lại như sau nhé:
Mã:
Sub KetQua01()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet3.Range("B3").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5),sum(F6),sum(F7),sum(F8) from [Data$B9:I] where F2 is not null and F2 <>'CV' and F8 is not null group by F1,F2")
    End With
   
End Sub
Sub KetQua02()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("B3").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5) from [Data$B9:I] where F2 is not null and F2 <>'CV' and F8 is null group by F1,F2")
    End With
   
End Sub
 
Upvote 0
Bạn thử lại như sau nhé:
Mã:
Sub KetQua01()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet3.Range("B3").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5),sum(F6),sum(F7),sum(F8) from [Data$B9:I] where F2 is not null and F2 <>'CV' and F8 is not null group by F1,F2")
    End With
  
End Sub
Sub KetQua02()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("B3").CopyFromRecordset .Execute("Select F1,F2,sum(F3),sum(F4),sum(F5) from [Data$B9:I] where F2 is not null and F2 <>'CV' and F8 is null group by F1,F2")
    End With
  
End Sub
Dạ lần này thì kết quả đúng ý em Vân rồi ạ !, Em Vân cảm ơn anh ạ !. Em Vân đang kiểm tra vụ Nhân viên Phạm Thế Bắc đang có 2 tên bởi khách nhau 1 dấu Cách ở cuối tên thôi ạ !
 
Upvote 0
Dạ lần này thì kết quả đúng ý em Vân rồi ạ !, Em Vân cảm ơn anh ạ !. Em Vân đang kiểm tra vụ Nhân viên Phạm Thế Bắc đang có 2 tên bởi khách nhau 1 dấu Cách ở cuối tên thôi ạ !
Dấu cách cuối và không cách thì nó sẽ tự động gom lại thành 1 là không cách mà bạn
 
Upvote 0
Web KT
Back
Top Bottom