Cộng dữ liệu text 2 sheet riêng biệt và bỏ trùng để tạo ra 1 danh sách dữ liệu mới (1 người xem)

Liên hệ QC

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

Van Tuyen Do

Thành viên mới
Tham gia
11/3/20
Bài viết
30
Được thích
1
Anh/Chị hướng dẫn giúp cách cộng dữ liệu text 2 sheet riêng biệt và bỏ trùng để tạo ra 1 danh sách dữ liệu mới với ạ. File excel e đính kèm ạ. Em cảm ơn ạ
 

File đính kèm

Anh/Chị hướng dẫn giúp cách cộng dữ liệu text 2 sheet riêng biệt và bỏ trùng để tạo ra 1 danh sách dữ liệu mới với ạ. File excel e đính kèm ạ. Em cảm ơn ạ
Chỉ đơn giản là "lấy râu ông nọ chắp cằm bà kia" vào cái sheet tổng. Rồi pivot table
 

File đính kèm

Chỉ đơn giản là "lấy râu ông nọ chắp cằm bà kia" vào cái sheet tổng. Rồi pivot table
Mong muốn là không cần có thao tác thủ công nào anh ạ
Bài đã được tự động gộp:

Nghĩa là sao vậy bạn ơi?
Mong muốn của em là khi có dữ liệu cột A sheet 1 và dữ liệu cột A sheet 2 thì tại cột E sheet 2 sẽ tự động cộng dữ liệu 2 cột A kia và bỏ trùng tạo thành 1 danh sách mới ạ
 
Mong muốn là không cần có thao tác thủ công nào anh ạ
Bài đã được tự động gộp:


Mong muốn của em là khi có dữ liệu cột A sheet 1 và dữ liệu cột A sheet 2 thì tại cột E sheet 2 sẽ tự động cộng dữ liệu 2 cột A kia và bỏ trùng tạo thành 1 danh sách mới ạ

Dữ liệu sheet 1 là duy nhất hay có thể trùng?

.
 
Trùng anh ạ. Trùng nhiều là đằng khác ạ. E muốn tạo ra 1 danh sách mới bỏ trùng ạ
Mình nghĩ cần có hai bước ấy.
Bước 1:tại ô cuối cùng của cột A sheet 2, bạn viết công thức lấy cột A sheet 1 qua.
Bước 2: tại cột E dùng Unique lọc trùng dữ liệu từ cột A.
 
À không phải em lười đâu mà bình thường đằng sau nó còn 1 hệ thống data khác nên e cố gắng tìm cách tối ưu hóa ạ :)
Tạo sheet "Tong" (không dấu) để lưu dữ liệu tổng hợp.
Chạy code sau:
Mã:
Sub TotalUnique()
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=""Excel 12.0;HDR=NO"";Data Source=" & ThisWorkbook.FullName)
        Sheets("Tong").Range("A2").CopyFromRecordset .Execute("Select F1, Sum(F2) from (Select F1,F2 from [1$A2:B] Union All Select F1,F2 from [2$A2:B]) Group by F1 order by F1")
    End With
End Sub
 
Tạo sheet "Tong" (không dấu) để lưu dữ liệu tổng hợp.
Chạy code sau:
Mã:
Sub TotalUnique()
    With CreateObject("ADODB.Connection")
        .Open ("Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=""Excel 12.0;HDR=NO"";Data Source=" & ThisWorkbook.FullName)
        Sheets("Tong").Range("A2").CopyFromRecordset .Execute("Select F1, Sum(F2) from (Select F1,F2 from [1$A2:B] Union All Select F1,F2 from [2$A2:B]) Group by F1 order by F1")
    End With
End Sub
Nếu em chỉ cần cho cột mã mà không cần tính tổng thì e chỉ cần bỏ đoạn ... Sum(F2).. đi phải không anh?
 
Bạn chạy thử code sau nhé:

Mã:
Sub GopDL_HLMT()
    Dim strSQL As String
    strSQL = "Select [Mã] From [1$] " & _
             "Union All Select [Mã] From [2$]"
    With CreateObject("ADODB.Recordset")
        .Open ("Select Distinct [Mã] From (" & strSQL & ") Where [Mã] Is Not Null"), "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 12.0 Xml;"
        Sheet2.Range("F2").CopyFromRecordset .DataSource
    End With
End Sub
 
Bạn chạy thử code sau nhé:

Mã:
Sub GopDL_HLMT()
    Dim strSQL As String
    strSQL = "Select [Mã] From [1$] " & _
             "Union All Select [Mã] From [2$]"
    With CreateObject("ADODB.Recordset")
        .Open ("Select Distinct [Mã] From (" & strSQL & ") Where [Mã] Is Not Null"), "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 12.0 Xml;"
        Sheet2.Range("F2").CopyFromRecordset .DataSource
    End With
End Sub
Dạ Em cảm ơn anh ạ
 
Web KT

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

Back
Top Bottom