Lọc dữ liệu với nhiều điều kiện đồng thời

Liên hệ QC

mickeybh

Thành viên hoạt động
Tham gia
26/9/13
Bài viết
156
Được thích
33
Kính gửi Anh/ Chị trên GPE!

Nhờ Anh/ Chị giúp em viết code giúp em lọc nhiều điều kiện theo file đính kèm. Các điều kiện này được đưa vào từ B2:L2, dữ liệu được lọc ra theo điều kiện và.
Em hay lọc dữ liệu trên file này mà khi lọc nhiều điều kiện thỏa mãn thì phải filter từng cột mất quá nhiều thao tác.
Em gửi file đính kèm nhờ các Anh/ Chị xem và giúp em.
Cảm ơn!
 

File đính kèm

  • THEO DOI PHAN KHAI.rar
    403 KB · Đọc: 21
Bạn xài thử AdvancedFilter chưa,. . . thử xem?
 
Ở bài viết này a có gợi ý em dùng advance filter nhưng em thử qua thấy bất tiện ở chỗ điều kiện nhập vào phải đúng nó mới cho ra kết quả. Tuy nhiên, mong muốn của em với dữ liệu kiểu ngày tháng hoặc kiểu số thì chỉ cần >= điều kiện đưa vào, dữ liệu dạng chuỗi thì chỉ cần có chứa những ký tự trong điều kiện đưa vào là được.
Mong a xem lại giúp em.
Bạn xem thử file, nếu đạt kết quả thì bạn tiếp tục phát triển đi nha
 

File đính kèm

  • GPE.rar
    414.5 KB · Đọc: 28
Bạn xem thử file, nếu đạt kết quả thì bạn tiếp tục phát triển đi nha
Em tải file của Anh xuống thử nhưng trong 4 điều kiện đó phải đưa vào hết mới cho ra kết quả. Trong 4 điều kiện đó em có thể dùng ít nhất là 1 và nhiều nhất là 4.
Nhờ Anh và các bạn trên GPE xem lại giúp em chỗ đó với.
 
Em tải file của Anh xuống thử nhưng trong 4 điều kiện đó phải đưa vào hết mới cho ra kết quả. Trong 4 điều kiện đó em có thể dùng ít nhất là 1 và nhiều nhất là 4.
Nhờ Anh và các bạn trên GPE xem lại giúp em chỗ đó với.
Anh SA_DQ đã làm đúng theo yêu cầu của tiêu đề: nhiều điều kiện đồng thời đó bạn à.
 
Anh SA_DQ đã làm đúng theo yêu cầu của tiêu đề: nhiều điều kiện đồng thời đó bạn à.
Cảm ơn bạn. Có thể cách hiểu của mình khác, ý của mình trong 4 điều kiện đó, điều kiện nào không nhập thì xem như không có (dữ liệu bất kỳ thõa mãn các điều kiện đã nhập vào).
Ví dụ dữ liệu mình có 4 cột A, B, C, D.
- Khi mình lọc điều kiện ở cột A thì dữ liệu ở cột B, C, D thỏa mãn điều kiện cột A
- Khi mình lọc thêm điều kiện ở cột B thì dữ liệu ở cột C, D thỏa mãn điều kiện cột A và B
- Khi mình lọc thêm điều kiện ở cột C thì dữ liệu ở cột D thỏa mãn điều kiện cột A và B và C
....

Mình hiểu và diễn đạt như vậy mong các bạn xem giúp.
 
Cảm ơn bạn. Có thể cách hiểu của mình khác, ý của mình trong 4 điều kiện đó,
điều kiện nào không nhập thì xem như không có (dữ liệu bất kỳ thõa mãn các điều kiện đã nhập vào).
Sủ dụng code này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:E2")) Is Nothing Then
    Range("B7").CurrentRegion.Offset(1, 1).ClearContents
   Sheets("PHANKHAI").Range("B4:AN1490").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("B1:E2"), CopyToRange:=Range("B6:G6"), Unique:=False
End If
End Sub
Thay đổi giá trị trong B2:E2 để chạy code.
 

File đính kèm

  • THEO DOI PHAN KHAI.xlsm
    496.6 KB · Đọc: 18
Sủ dụng code này:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:E2")) Is Nothing Then
    Range("B7").CurrentRegion.Offset(1, 1).ClearContents
   Sheets("PHANKHAI").Range("B4:AN1490").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("B1:E2"), CopyToRange:=Range("B6:G6"), Unique:=False
End If
End Sub
Thay đổi giá trị trong B2:E2 để chạy code.
Cảm ơn bạn.
Điều kiện ở B2 và C2 mình cần lấy theo ">=", mình nhập không đúng ngày nó không ra kết quả.
Bạn xem giúp mình nha.
 
Ví dụ lớn hơn hoặc bàng ngày 15/1/2019, hãy nhập"
=">="&DATE(2019,1,15)
Cảm ơn bạn.
Chắc Advanced filter hơi bất tiện khi dữ liệu ngày tháng hoặc kiểu số muốn lọc với điều kiện >=, dữ liệu text thì phải bắt đầu từ ký tự đầu tiên chứ không thể tìm bất kỳ.
 
Cảm ơn bạn.
Chắc Advanced filter hơi bất tiện khi dữ liệu ngày tháng hoặc kiểu số muốn lọc với điều kiện >=,
dữ liệu text thì phải bắt đầu từ ký tự đầu tiên chứ không thể tìm bất kỳ.
Sao lại không thể, muốn tìm ký tự "S" ở vị trí bất kỳ, hãy sử dụng ký tự đại diện "*": Mẫu => "*S*"

Muốn tìm ký tự "S" ở vị trí thứ 2, hãy sử dụng ký tự đại diện "?" Mẫu => "?S*"
 
Sao lại không thể, muốn tìm ký tự "S" ở vị trí bất kỳ, hãy sử dụng ký tự đại diện "*": Mẫu => "*S*"

Muốn tìm ký tự "S" ở vị trí thứ 2, hãy sử dụng ký tự đại diện "?" Mẫu => "?S*"
Oke bạn. Mình dùng thêm vùng phụ để lọc như Anh SA_DQ có làm mẫu nhưng nó luôn ở trạng thái lọc và có những dòng nó ẩn đi không biết thế nào (mình lọc trực tiếp trên sheet hiện hành luôn chứ không copy dữ liệu đi qua vùng khác).

Nhờ Anh/ Chị và các bạn giúp mình hướng xử lý khác, tính năng Advanced filter không dùng được trong trường hợp share workbook.
Xin cảm ơn!
 
Lần chỉnh sửa cuối:
. . . . (mình lọc trực tiếp trên sheet hiện hành luôn chứ không copy dữ liệu đi qua vùng khác).
Nếu như mình hiểu, bạn lọc AutoFilter thì có ngày CSDL của bạn thành đống rác; Vậy nên bạn cần cẩn thận hơn
 
Nếu như mình hiểu, bạn lọc AutoFilter thì có ngày CSDL của bạn thành đống rác; Vậy nên bạn cần cẩn thận hơn
Dữ liệu này em lọc ra để cập nhật chứ không sử dụng cho mục đích khác nên phải dùng trên sheet hiện hành luôn anh ah.
 
Web KT
Back
Top Bottom