Lọc tìm kiếm nhiều thỏa mãn nhiều điều kiện

Liên hệ QC

songiang5011

Thành viên mới
Tham gia
6/7/21
Bài viết
47
Được thích
10
Em xin chào các anh chị trong diễn đàn, do dữ liệu em khoảng trên 10,000 dòng, em muốn tìm kiếm xem nhanh dữ liệu mình muốn tìm, vậy em nhờ các anh chị giúp em viết code lọc điều kiện thỏa mãn 3 điều kiện, như 3 trường hợp trong file , em xin cám ơn anh chị ạ
 

File đính kèm

PHP:
Sub loc()
Dim rng As Range
Set rng = [a1].CurrentRegion
    ActiveSheet.AutoFilterMode = False
    With rng
        .AutoFilter field:=1, Criteria1:="*" & [a1] & "*"
        .AutoFilter field:=2, Criteria1:="*" & [b1] & "*"
        .AutoFilter field:=3, Criteria1:="*" & [c1] & "*"
    End With
End Sub
 
Em xin chào các anh chị trong diễn đàn, do dữ liệu em khoảng trên 10,000 dòng, em muốn tìm kiếm xem nhanh dữ liệu mình muốn tìm, vậy em nhờ các anh chị giúp em viết code lọc điều kiện thỏa mãn 3 điều kiện, như 3 trường hợp trong file , em xin cám ơn anh chị ạ
Nếu muốn dùng bằng VBA thì thử xem file
Hãy click vào các nút bấm và xem kết quả. Thêm bớt dữ liệu và kiểm tra lại.
 

File đính kèm

PHP:
Sub loc()
Dim rng As Range
Set rng = [a1].CurrentRegion
    ActiveSheet.AutoFilterMode = False
    With rng
        .AutoFilter field:=1, Criteria1:="*" & [a1] & "*"
        .AutoFilter field:=2, Criteria1:="*" & [b1] & "*"
        .AutoFilter field:=3, Criteria1:="*" & [c1] & "*"
    End With
End Sub
dạ cám ơn anh kết quả tìm kiếm ra đúng ý em, nhưng anh ơi có cách nào khi gõ vào ô a1 b1 c1 dữ liệu tự nhảy ra luôn ko ạ.? và khi xóa dữ liệu ô a1 b1 c1 dữ liệu về trạng thái ban đầu ko ạ,(ko cân dùng nút LỌC). em cám ơn anh
Bài đã được tự động gộp:

Nếu muốn dùng bằng VBA thì thử xem file
Hãy click vào các nút bấm và xem kết quả. Thêm bớt dữ liệu và kiểm tra lại.
1640582880130-png.270820

em cám ơn anh
.mà anh ơi điều kiện 3, có vẻ không đúng lắm, và anh có cách nào ko cần ấn nút ko ạ, chỉ cần gõ dữ liệu vào ô là dữ liệu tự nhảy ra luôn
 

File đính kèm

  • 1640582880130.png
    1640582880130.png
    101.8 KB · Đọc: 123
Lần chỉnh sửa cuối:
dạ cám ơn anh kết quả tìm kiếm ra đúng ý em, nhưng anh ơi có cách nào khi gõ vào ô a1 b1 c1 dữ liệu tự nhảy ra luôn ko ạ.? và khi xóa dữ liệu ô a1 b1 c1 dữ liệu về trạng thái ban đầu ko ạ,(ko cân dùng nút LỌC). em cám ơn anh
Bài đã được tự động gộp:


1640582880130-png.270820

em cám ơn anh
.mà anh ơi điều kiện 3, có vẻ không đúng lắm, và anh có cách nào ko cần ấn nút ko ạ, chỉ cần gõ dữ liệu vào ô là dữ liệu tự nhảy ra luôn
Sao điều kiện 3 lại không đúng nhỉ: ĐK 1: Tên ANH; ĐK 2 Số cuối của SĐT là 1; ĐK 3 Từ đầu của địa chỉ là HÀ. Bạn thử kiểm tra xem lọc 2 ĐK TÊN và Số cuối Của ĐT ra được những ai và kiểm tra xem những người nào có thêm điều kiện thứ ba là tên đầu của địa chỉ là HÀ.
xem file (đã sửa đổi đôi chút-Thêm yêu cầu khi nhập vào các ô A1-C1 thì tự động nhảy)
 

File đính kèm

Sao điều kiện 3 lại không đúng nhỉ: ĐK 1: Tên ANH; ĐK 2 Số cuối của SĐT là 1; ĐK 3 Từ đầu của địa chỉ là HÀ. Bạn thử kiểm tra xem lọc 2 ĐK TÊN và Số cuối Của ĐT ra được những ai và kiểm tra xem những người nào có thêm điều kiện thứ ba là tên đầu của địa chỉ là HÀ.
xem file (đã sửa đổi đôi chút-Thêm yêu cầu khi nhập vào các ô A1-C1 thì tự động nhảy)
dạ , ý em là 3 ô liên kết với nhau,tìm dữ liệu ngẫu nhiên miễn sao chứa ô cần tìm ạ, như file này là đúng, anh giúp em bỏ ko cần ấn nút LỌC ,khi nhập vào các ô A1-C1 thì tự động nhảy, thank anh
 

File đính kèm

Lần chỉnh sửa cuối:
Để trong worksheet_change nhé
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If ([a1] = "" And [b1] = "" And [c1] = "") Or Intersect(Target, Range("A1:C1")) Is Nothing Then
    ActiveSheet.AutoFilterMode = False
    Exit Sub
    End If
    With [a1].CurrentRegion
        .AutoFilter field:=1, Criteria1:="*" & [a1] & "*"
        .AutoFilter field:=2, Criteria1:="*" & [b1] & "*"
        .AutoFilter field:=3, Criteria1:="*" & [c1] & "*"
    End With
End Sub
 

File đính kèm

Để trong worksheet_change nhé
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If ([a1] = "" And [b1] = "" And [c1] = "") Or Intersect(Target, Range("A1:C1")) Is Nothing Then
    ActiveSheet.AutoFilterMode = False
    Exit Sub
    End If
    With [a1].CurrentRegion
        .AutoFilter field:=1, Criteria1:="*" & [a1] & "*"
        .AutoFilter field:=2, Criteria1:="*" & [b1] & "*"
        .AutoFilter field:=3, Criteria1:="*" & [c1] & "*"
    End With
End Sub
ui đúng ý em rùi, cám ơn anh, anh ơi cho em hỏi, em muốn lọc ra sheet mới được ko?,anh giúp em câu lệnh với. thank anh
 

File đính kèm

  • okokok.xlsm
    okokok.xlsm
    100.4 KB · Đọc: 3
  • 1640587563254.png
    1640587563254.png
    16.1 KB · Đọc: 5
Sao điều kiện 3 lại không đúng nhỉ: ĐK 1: Tên ANH; ĐK 2 Số cuối của SĐT là 1; ĐK 3 Từ đầu của địa chỉ là HÀ. Bạn thử kiểm tra xem lọc 2 ĐK TÊN và Số cuối Của ĐT ra được những ai và kiểm tra xem những người nào có thêm điều kiện thứ ba là tên đầu của địa chỉ là HÀ.
xem file (đã sửa đổi đôi chút-Thêm yêu cầu khi nhập vào các ô A1-C1 thì tự động nhảy)
anh ơi em cần điều kiện như này là đủ , anh giúp em khi nhập vào các ô A1-C1 thì tự động nhảy, và em muốn làm cho ra dữ liệu sheets mới , anh giúp em với, thank anh
Option Explicit

Sub LOC1DK()
Dim i&, j&, Lr&, t&, k&, R&
Dim Arr(), KQ()
Dim Sh As Worksheet
Dim Sh2 As Worksheet
Dim Ten As String, SDT As String, DChi As String
Set Sh = Sheet1
Set Sh2 = Sheet2
Lr = Sh.Cells(Rows.Count, 1).End(xlUp).Row
Arr = Sh.Range("A3:C" & Lr).Value
R = UBound(Arr)
Ten = UCase(Sh2.Cells(1, 1)): DChi = UCase(Sh2.Cells(1, 3)): SDT = Sh2.Cells(1, 2)
ReDim KQ(1 To R, 1 To 3)
For i = 1 To R
If UCase(Arr(i, 1)) Like "*" & Ten & "*" And UCase(Arr(i, 2)) Like "*" & SDT & "*" And UCase(Arr(i, 3)) Like "*" & DChi & "*" Then
t = t + 1
For j = 1 To 3
KQ(t, j) = Arr(i, j)
Next j

End If
Next i
If t Then
Sh2.Cells(2, 1).Resize(R, 3).ClearContents
Sh2.Cells(2, 1).Resize(t, 3) = KQ
Else
MsgBox " Không có"
End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
anh ơi em cần điều kiện như này là đủ , anh giúp em khi nhập vào các ô A1-C1 thì tự động nhảy, và em muốn làm cho ra dữ liệu sheets mới , anh giúp em với, thank anh
Bạn xem file.
Khuyên bạn:
1/Trong bài viết không nên dùng tiếng Tây, ta lẫn lộn(nên dùng tiếng Việt thuần túy) và không nên dùng các kiểu ngông ngữ của Bùi Hiền (ah, vs, mn, ntn....)
2/ Nên đặt tên Sh bằng Tiếng Việt Không dấu và ngắn gọn hơn. Thay vì dữ liệu Paster vào bạn chỉ cần DuLieu thì ai đọc cũng hiểu.
Thân!
 

File đính kèm

Bạn xem file.
Khuyên bạn:
1/Trong bài viết không nên dùng tiếng Tây, ta lẫn lộn(nên dùng tiếng Việt thuần túy) và không nên dùng các kiểu ngông ngữ của Bùi Hiền (ah, vs, mn, ntn....)
2/ Nên đặt tên Sh bằng Tiếng Việt Không dấu và ngắn gọn hơn. Thay vì dữ liệu Paster vào bạn chỉ cần DuLieu thì ai đọc cũng hiểu.
Thân!
Bạn xem file.
Khuyên bạn:
1/Trong bài viết không nên dùng tiếng Tây, ta lẫn lộn(nên dùng tiếng Việt thuần túy) và không nên dùng các kiểu ngông ngữ của Bùi Hiền (ah, vs, mn, ntn....)
2/ Nên đặt tên Sh bằng Tiếng Việt Không dấu và ngắn gọn hơn. Thay vì dữ liệu Paster vào bạn chỉ cần DuLieu thì ai đọc cũng hiểu.
Thân!
vâng, e cám ơn anh ạ.
 
Web KT

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

Back
Top Bottom