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

Trả lời
14
Đọc
5K
  • Dán lên cao
Trả lời
26
Đọc
10K
Back
Top Bottom