Mong các bác giúp e lọc giữ liệu không trùng giữa 2 file excel có giữ liệu trùng nhau (2 người xem)

Liên hệ QC

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

dienthoaitot

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
2/7/08
Bài viết
17
Được thích
1
Chào các bác,

Hôm nay e lại có vấn đề nhỏ cần sự trợ giúp của các bác ạ,

E có 2 file excel, một file tên là "file goc" , file còn lại tên là "file new"

Trên mỗi file, đều có một cột chứa thông tin. Ở file "file new" có giữ liệu trùng với file "file goc" (cụ thể là tinhte.com và raovat.net ) ., và có giữ liệu không trùng .

Giờ e muốn lọc tất cả giữ liệu có ở file "file new" mà không có ở file "file goc" ra một file excel mới (hoặc ra một table mới ) . Như 2 file e upload lên thì sẽ có 4 giữ liệu ở "file new" không có trong "file gốc", và e muốn 4 giữ liệu đó xuất riêng ra một file excel khác.

Em xin chân thành cảm ơn các bác ạ!
 

File đính kèm

Chào các bác,

Hôm nay e lại có vấn đề nhỏ cần sự trợ giúp của các bác ạ,

E có 2 file excel, một file tên là "file goc" , file còn lại tên là "file new"

Trên mỗi file, đều có một cột chứa thông tin. Ở file "file new" có giữ liệu trùng với file "file goc" (cụ thể là tinhte.com và raovat.net ) ., và có giữ liệu không trùng .

Giờ e muốn lọc tất cả giữ liệu có ở file "file new" mà không có ở file "file goc" ra một file excel mới (hoặc ra một table mới ) . Như 2 file e upload lên thì sẽ có 4 giữ liệu ở "file new" không có trong "file gốc", và e muốn 4 giữ liệu đó xuất riêng ra một file excel khác.

Em xin chân thành cảm ơn các bác ạ!

Dùng code sau nhé.
Lưu ý là mở cà 2 file (File gocfile new cùng lúc) chép code sau vào file goc, xong chạy code nhé.

Mã:
Sub SoSanh()
Dim wbA As Workbook, wbB As Workbook, ws As Worksheet
Dim CotAwbA As Range, CotBwbB As Range, i As Range
Set wbA = Workbooks("file goc.xls")
Set wbB = Workbooks("file new.xls")
Set CotAwbA = Range("A1", Range("A" & Rows.Count).End(xlUp))
Application.ScreenUpdating = False
wbB.Activate
For Each i In CotAwbA
i.Offset(0, 1) = ""
For Each ws In ActiveWorkbook.Worksheets
With ws
Set CotBwbB = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
If Not CotBwbB.Find(What:=i.Value, LookAt:=xlPart) Is Nothing Then
i.Offset(0, 1) = "Co roi"
Exit For
End If
End With
Next ws
Next i
wbA.Activate
Application.ScreenUpdating = True
End Sub
 
Chào các bác,

Hôm nay e lại có vấn đề nhỏ cần sự trợ giúp của các bác ạ,

E có 2 file excel, một file tên là "file goc" , file còn lại tên là "file new"

Trên mỗi file, đều có một cột chứa thông tin. Ở file "file new" có giữ liệu trùng với file "file goc" (cụ thể là tinhte.com và raovat.net ) ., và có giữ liệu không trùng .

Giờ e muốn lọc tất cả giữ liệu có ở file "file new" mà không có ở file "file goc" ra một file excel mới (hoặc ra một table mới ) . Như 2 file e upload lên thì sẽ có 4 giữ liệu ở "file new" không có trong "file gốc", và e muốn 4 giữ liệu đó xuất riêng ra một file excel khác.

Em xin chân thành cảm ơn các bác ạ!

Với dữ liệu của bạn và yêu cầu như vậy, Tôi chẳng có phương pháp gì cao siêu cả chỉ dùng Auto Filter và 1 hàm Countif đơn giản cùng với Copy & Paste thì chờ cho người khác LÀM HÀM, VIẾT CODE thì tôi đã thao tác xong từ lâu rồi (vừa nhanh, vừa nhẹ - thơm ngon bổ rẻ,...)
Không tin bạn thử xem file đính kèm
 

File đính kèm

Cảm ơn 2 bác đã có ý kiến !

Bác domfootwear up lên code , e đã chạy thử, nhưng đó là code lọc giữ liệu trùng từ "file new" qua "file gốc" và báo kết quả ra "file gốc". Ý của e là lọc 4 giữ liệu không trùng của "file new" ra một file (hoặc một sheet) mới, chứ không phải như của bác đưa ra đâu ạ

Bác dat_butmuc thì đưa file lên đúng ý của e rồi đấy ạ, nhưng bác có thể nói rõ làm thế nào không ạ? hic hic, bác đưa cái file lên thì e cũng không hiểu bác làm như thế nào nữa. Mong bác chỉ giáo thêm ạ

Cảm ơn các bác nhiều !
 
Cảm ơn 2 bác đã có ý kiến !

Bác domfootwear up lên code , e đã chạy thử, nhưng đó là code lọc giữ liệu trùng từ "file new" qua "file gốc" và báo kết quả ra "file gốc". Ý của e là lọc 4 giữ liệu không trùng của "file new" ra một file (hoặc một sheet) mới, chứ không phải như của bác đưa ra đâu ạ

Bác dat_butmuc thì đưa file lên đúng ý của e rồi đấy ạ, nhưng bác có thể nói rõ làm thế nào không ạ? hic hic, bác đưa cái file lên thì e cũng không hiểu bác làm như thế nào nữa. Mong bác chỉ giáo thêm ạ

Cảm ơn các bác nhiều !

Vậy thì thêm 1 đoạn sau filter những dòng không có và đưa nó sang sheet2
Mã:
Sub FindColA()
Dim wbA As Workbook, wbB As Workbook, ws As Worksheet
Dim ColAwbA As Range, ColAwbB As Range, i As Range
Set wbA = ThisWorkbook
Set wbB = Workbooks("file new.xls")
Set ColAwbA = Range("A1", Range("A" & Rows.Count).End(xlUp))
Application.ScreenUpdating = False
wbB.Activate
For Each i In ColAwbA
For Each ws In ActiveWorkbook.Worksheets
With ws
Set ColAwbB = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
i.Offset(0, 1) = ""
If Not ColAwbB.Find(What:=i.Value, LookAt:=xlPart) Is Nothing Then
i.Offset(0, 1) = "Co Roi"
Exit For
End If
End With
Next ws
Next i
wbA.Activate
[B][COLOR=Blue]With Sheet1.Range("A1").CurrentRegion
   .AutoFilter 2, ""
   .SpecialCells(12).Copy Sheet2.Range("A1")
   .AutoFilter
End With[/COLOR][/B]
Application.ScreenUpdating = True
End Sub
 
Cảm ơn bác đã reply rất nhanh.

Nhưng mà vẫn chưa phải ý của e bác ạ, :(

Là e muốn lọc "giữ liệu có ở "file new" mà không có ở file gốc.

Nếu như thế thì phải đặt code vào "file new" thì mới đúng

Nhưng e đã thử đặt code vào "file new" để run thì lại không ra kết quả, toàn báo là có rồi :D

Mong bác fix lại giúp e với ạ

E cảm ơn!
 
Cảm ơn bác đã reply rất nhanh.

Nhưng mà vẫn chưa phải ý của e bác ạ, :(

Là e muốn lọc "giữ liệu có ở "file new" mà không có ở file gốc.

Nếu như thế thì phải đặt code vào "file new" thì mới đúng

Nhưng e đã thử đặt code vào "file new" để run thì lại không ra kết quả, toàn báo là có rồi :D

Mong bác fix lại giúp e với ạ

E cảm ơn!

Bạn chép code sau vào file new va chạy code thử nhé

Mã:
Sub SoSanh()
Dim wbA As Workbook, wbB As Workbook, ws As Worksheet
Dim ColAwbA As Range, ColAwbB As Range, i As Range
Set wbA = Workbooks("file new.xls")
Set wbB = Workbooks("file goc.xls")
Set ColAwbA = Range("A1", Range("A" & Rows.Count).End(xlUp))
Application.ScreenUpdating = False
wbB.Activate
For Each i In ColAwbA
For Each ws In ActiveWorkbook.Worksheets
With ws
Set ColAwbB = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
i.Offset(0, 1) = ""
If Not ColAwbB.Find(What:=i.Value, LookAt:=xlPart) Is Nothing Then
i.Offset(0, 1) = "Co Roi"
Exit For
End If
End With
Next ws
Next i
wbA.Activate
With Sheet1.Range("A1").CurrentRegion
   .AutoFilter 2, ""
   .SpecialCells(12).Copy Sheet2.Range("A1")
   .AutoFilter
End With
Sheet2.Select
Application.ScreenUpdating = True
End Sub
 
Cảm ơn bác đã reply rất nhanh.

Nhưng mà vẫn chưa phải ý của e bác ạ, :(

Là e muốn lọc "giữ liệu có ở "file new" mà không có ở file gốc.

Nếu như thế thì phải đặt code vào "file new" thì mới đúng

Nhưng e đã thử đặt code vào "file new" để run thì lại không ra kết quả, toàn báo là có rồi :D

Mong bác fix lại giúp e với ạ

E cảm ơn!

Một vấn đề đơn giản tại sao phải dùng code nhỉ ? Làm các thao tác bình thường là ra ngay thôi.
Trong file đính kèm ở bài #3 , tôi mô tả cho bạn nhé!
1. Mở 02 file - ví dụ copy dữ liệu "file new" vào dưới dữ liệu "file gốc"
2. Dùng =COUNTIF($A$3:$A$18,A3) tại C3 rồi fill xuống dưới.
3. Tại dòng tiêu đề Data - Filter - Auto Filter
4. Sau đó chọn tại cột B và cột C - lần lượt chọn :
- "file gốc" tại cột B, 1 tại cột C -> cho ra file 1 -> Copy & Paste
- "file gốc" tại cột B, 2 tại cột C -> cho ra file 2 -> Copy & Paste
- "file new" tại cột B, 1 tại cột C -> cho ra file 3 -> Copy & Paste
- "file new" tại cột B, 2 tại cột C -> cho ra file 4 -> Copy & Paste
=>Nói thì có vẻ hơi rườm rà nhưng tôi đã bấm giờ & thao tác trong vòng không quá 1 phút !
 
Một vấn đề đơn giản tại sao phải dùng code nhỉ ? Làm các thao tác bình thường là ra ngay thôi.
Trong file đính kèm ở bài #3 , tôi mô tả cho bạn nhé!
1. Mở 02 file - ví dụ copy dữ liệu "file new" vào dưới dữ liệu "file gốc"
2. Dùng =COUNTIF($A$3:$A$18,A3) tại C3 rồi fill xuống dưới.
3. Tại dòng tiêu đề Data - Filter - Auto Filter
4. Sau đó chọn tại cột B và cột C - lần lượt chọn :
- "file gốc" tại cột B, 1 tại cột C -> cho ra file 1 -> Copy & Paste
- "file gốc" tại cột B, 2 tại cột C -> cho ra file 2 -> Copy & Paste
- "file new" tại cột B, 1 tại cột C -> cho ra file 3 -> Copy & Paste
- "file new" tại cột B, 2 tại cột C -> cho ra file 4 -> Copy & Paste
=>Nói thì có vẻ hơi rườm rà nhưng tôi đã bấm giờ & thao tác trong vòng không quá 1 phút !
Nhưng để thực hiệc việc này lặp đi lặp lại. Viết code tuy cực lúc đầu nhưng lần sau chỉ việc click là chờ kết quả thôi bạn à.
 
Các bác cho e hỏi paste code vào đâu ạ. E gà lắm mong các bác thông cảm
 
Web KT

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

Back
Top Bottom