Tổng hợp dữ liệu với cấu trúc dữ liệu dữ liệu khác nhau (1 người xem)

Liên hệ QC

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

vanaccex

Thành viên tiêu biểu
Tham gia
8/7/18
Bài viết
457
Được thích
306
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

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

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

Back
Top Bottom