Giúp em gộp dữ liêu từ hai nguồn dữ liệu?

Liên hệ QC

doanthuha203

Thành viên chính thức
Tham gia
6/10/08
Bài viết
53
Được thích
4
Cho em hỏi các anh chị một câu như thế này ạ. Em xuất từ phần mềm ra có 2 nguồn dữ liệu A và B để ở 2 sheet khác nhau. Nguồn dữ liệu trong A chỉ chứa một phần nguồn dữ liệu trong B, nguồn dữ liệu trong B cũng chỉ chứa một phần nguồn dữ liệu trong A. Vậy em phải làm thế nào để xuất ra phần chung giữa 2 nguồn dữ liệu A và B đó. Các anh chị nào có thể giúp em với. Em xin cảm ơn trước nhé!
 
Cho em hỏi các anh chị một câu như thế này ạ. Em xuất từ phần mềm ra có 2 nguồn dữ liệu A và B để ở 2 sheet khác nhau. Nguồn dữ liệu trong A chỉ chứa một phần nguồn dữ liệu trong B, nguồn dữ liệu trong B cũng chỉ chứa một phần nguồn dữ liệu trong A. Vậy em phải làm thế nào để xuất ra phần chung giữa 2 nguồn dữ liệu A và B đó. Các anh chị nào có thể giúp em với. Em xin cảm ơn trước nhé!

Bạn gửi file dữ liệu lên đi, cái này có thể làm bằng công thức,nếu phức tạp thì dùng VBA.
Nhất thiết phải có file đính kèm thì mới có thể giúp bạn được
 
Dữ liệu lấy từ phần mềm ra thường có 1 cột (trường dữ liệu) chứa giá trị duy nhất. Bạn dùng trường này làm mốc để dò tìm, thí dụ cột B.
Trên 1 cột trống ở sheetA gõ công thức:
=If(IsNA(Vlookup(B2,SheetB!B2:B10000,1,0),0,1)
Nghĩa là nếu tìm thấy (tức là dòng đó chứa dữ liệu chung) thì là 1, nếu không tìm thấy thì là 0.
Sau đó dùng AutoFilter lọc lấy 1 trên cột đó ta được phần dữ liệu chung.
 
Mình xin dịch ra tiếng Việt, như sau

Có hai Sheets Sh1 & Sh2
Trong Sh1 dữ liệu có ở vùng [A1:F9]
Trong Sh2 dữ liệu có ở vùng [B2:D19]
Cần tìm Intersect 'B2:D9' ?:-=
 
Theo công thức của anh PTM0412 thì em đã làm được rồi. Nhưng bây giờ vấn đề em gặp phải là việc dữ liệu giữa 2 nguồn không giống nhau. Ví dụ một sheet là Công ty Cổ phần quốc tế Mỹ Đình, một sheet chỉ ghi là Mỹ Đình thôi. Kết quả là khi em tìm kiếm thì nó vẫn kết xuất dữ liệu ra là 0, tức là không tìm thấy. Vấn đề này em nên xử lý như thế nào ạ. Em cảm ơn các anh, chị.
 
Theo công thức của anh PTM0412 thì em đã làm được rồi. Nhưng bây giờ vấn đề em gặp phải là việc dữ liệu giữa 2 nguồn không giống nhau. Ví dụ một sheet là Công ty Cổ phần quốc tế Mỹ Đình, một sheet chỉ ghi là Mỹ Đình thôi. Kết quả là khi em tìm kiếm thì nó vẫn kết xuất dữ liệu ra là 0, tức là không tìm thấy. Vấn đề này em nên xử lý như thế nào ạ. Em cảm ơn các anh, chị.
Như vậy là do dữ liệu của bạn không chuẩn, nếu dữ liệu đã không chuẩn thì là vấn đề nan giải rồi. Tôi nghĩ là trước tiên bạn phải chuẩn lại dữ liệu đã.
 
Ví dụ một sheet là Công ty Cổ phần quốc tế Mỹ Đình, một sheet chỉ ghi là Mỹ Đình thôi.
Đó là cột (field) tên côngty hoặc tên đối tượng, nếu cột này không phải cột dữ liệu duy nhất, thì dùng cột khác, thí dụ cột mã đối tượng, mã chứng từ, mã vật tư hàng hoá, ...
Nếu không có cột nào thì dùng 1 cột phụ nối 2, 3 cột nào đó với nhau, sao cho sau khi nối sẽ là dữ liệu duy nhất.

Nếu em băn khoăn không biết nên dùng cột nào, thì gởi file lên, nếu gởi file không được thì liệt kê các tên cột cũng được. Hoặc gởi vào mail thanhmypham@gmail.com, anh post lên cho.
 
Chiết xuất dữ liệu excel

Em gửi cho các anh, chị file đính kèm và em có ghi chú kèm lỗi vào đó. Các anh chị giúp em với nhé!
 

File đính kèm

  • Bang tinh.xls
    77 KB · Đọc: 16
Em gửi cho các anh, chị file đính kèm và em có ghi chú kèm lỗi vào đó. Các anh chị giúp em với nhé!
Làm cách dễ nhất là lập 2 bảng có maDV như nhau và tên thì theo hai bảng. Dùng Vlookup để tìm ra maDV, tìm không được bảng 1, tìm bảng 2.
Đó chỉ là giải phái đối phó.
Ví dụ:
MYDINH---MY DINH---CTY CP MY DINH---CTY TNHH MY DINH---DNTN MY DINH
Là mấy cty.
Cái này chắc chỉ có bạn hiểu thôi.
Làm code cũng không giải quyết được.
 
Theo bài 1, dữ liệu 2 sheet được lấy ra từ phần mềm, chả lẽ chỉ có 1 cột sao? Có cách nào lấy ra nhiều cột hơn không? trong phần mềm chắc chắn rằng sẽ có cột mã khách hàng (customer code chẳng hạn).
 
Dùng macro dưới đây, sẽ bắt gặp ba trường hợp

|Rw1|CN1|CN2|Rw2|
||. . .|. . .||
|14|MY DINH|CONG TY CO PHAN QUOC TE MY DINH|151|
||. . . |. . .||
|71|PHAM THI HON |PHAM THI HONG|110|
||. . . |. . .||
|155|HUNG|TRINH QUANG HUNG|3|
||. . . |. . .|!$@!!|

Bạn tự rút ra kết luận, nha!

PHP:
Option Explicit
Sub TimTrung()
Dim lRw As Long, Fw As Long
Dim Sht As Worksheet, Shs As Worksheet, Rng As Range
 
Set Sht = Sheets("SKTSDB"): Set Shs = Sheet3
'MsgBox Shs.Name'
Sheets("SKTD").Select: lRw = [a65500].End(xlUp).Row
With Sht.Range(Sht.[A2], Sht.[a65432].End(xlUp))
    For Fw = 2 To lRw
        Set Rng = .Find(what:=Cells(Fw, "A"), LookIn:=xlValues)
        If Not Rng Is Nothing Then
            With Shs.[a65432].End(xlUp)
                .Offset(1) = Fw: .Offset(1, 1) = Cells(Fw, "A")
                .Offset(1, 2) = Rng.Value
                .Offset(1, 3) = Rng.Row
            End With
       End If
    Next Fw
 End With
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Hic. Có cách nào dùng công thức cho em không ạ. Các anh chị giúp em với nhé!**~**
 
Web KT
Back
Top Bottom