Lọc các dòng trong vùng của Sheet 2 nhưng không có trong Sheet 1 (1 người xem)

  • Thread starter Thread starter LinDan
  • Ngày gửi Ngày gửi
Liên hệ QC

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

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
Nhờ các anh, chị, các thày giúp cho em bài toán lọc những dòng (giá trị cột A và B tương ứng) tồn tại ở Sheet 2 nhưng không tồn tại trong Sheet 1 (những vùng cần lọc bôi màu đỏ).

Nói cách khác vùng cần lọc của em chỉ giới hạn ở 2 cột A, B những dòng nào trong vùng không tồn tại ở Sheet 1 thì lọc ra.
 

File đính kèm

Nhờ các anh, chị, các thày giúp cho em bài toán lọc những dòng (giá trị cột A và B tương ứng) tồn tại ở Sheet 2 nhưng không tồn tại trong Sheet 1 (những vùng cần lọc bôi màu đỏ).

Nói cách khác vùng cần lọc của em chỉ giới hạn ở 2 cột A, B những dòng nào trong vùng không tồn tại ở Sheet 1 thì lọc ra.

Public Sub GPE()
Dim Rng(), Arr(1 To 65000, 1 To 2), I As Long, K As Long, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Rng = Sheets("Sheet 2").[A2:B65000].Value
For I = 1 To UBound(Rng, 1)
If Rng(I, 1) <> "" Then
If Not Dic.Exists(Rng(I, 1) & Rng(I, 2)) Then
Dic.Add Rng(I, 1) & Rng(I, 2), ""
End If
End If
Next I
Rng = Sheets("Sheet 1").[A2:B65000].Value
For I = 1 To UBound(Rng, 1)
If Rng(I, 1) <> "" Then
If Not Dic.Exists(Rng(I, 1) & Rng(I, 2)) Then
K = K + 1
Arr(K, 1) = Rng(I, 1): Arr(K, 2) = Rng(I, 2)
End If
End If
Next I
With Sheets("KetQua")
.[A2:B65000].ClearContents
.[A2].Resize(K, 2).Value = Arr
End With
Set Dic = Nothing
End Sub
 
Nhờ các anh, chị, các thày giúp cho em bài toán lọc những dòng (giá trị cột A và B tương ứng) tồn tại ở Sheet 2 nhưng không tồn tại trong Sheet 1 (những vùng cần lọc bôi màu đỏ).

Nói cách khác vùng cần lọc của em chỉ giới hạn ở 2 cột A, B những dòng nào trong vùng không tồn tại ở Sheet 1 thì lọc ra.

AdvanceFilter chắc bạn biết chứ?
Công thức điều kiện đặt tại E2 của sheet2:
Mã:
=SUMPRODUCT((Sheet1!$A$2:$A$100=$A2)*(Sheet1!$B$2:$B$100=$B2))=0
hoặc điều kiện:
Mã:
=COUNTIF(Sheet1!$A$2:$A$100,$A2)*COUNTIF(Sheet1!$B$2:$B$100,$B2)=0
Đứng tại sheet2, gọi AdvanceFilter, lọc vùng dữ liệu Sheet2!A1:B11 theo điều kiện trên
 
Lần chỉnh sửa cuối:
AdvanceFilter chắc bạn biết chứ?
Công thức điều kiện đặt tại E2 của sheet2:
Mã:
=SUMPRODUCT((Sheet1!$A$2:$A$100=$A2)*(Sheet1!$B$2:$B$100=$B2))=0
hoặc điều kiện:
Mã:
=COUNTIF(Sheet1!$A$2:$A$100,$A2)*COUNTIF(Sheet1!$B$2:$B$100,$B2)=0
Đứng tại sheet2, gọi AdvanceFilter, lọc vùng dữ liệu Sheet2!A1:B11 theo điều kiện trên

Híc, quả công thức đúng chất Ndu luôn, độc đáo mà ít ai ngờ tới.
 
Web KT

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

Back
Top Bottom