Filter theo 1 danh sách có sẵn

Liên hệ QC

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,061
Được thích
175
Các anh/chị giúp em như sau
Do công việc thường xuyên phải filter để trích lọc, nhưng nếu dùng filter thông thường thì sẽ lâu và không chính xác
Nên em đã lập danh sách cần filter ở ô B1, trong danh sách này các điều kiện cách nhau bởi dấu phẩy, ví dụ: yến, nhung, hồng, hoa, việt, thư
Danh sách cần trích lọc ở cột A (trích lọc không cần phân biệt chữ hoa hay chữ thường)
Nhờ các anh/chị hướng dẫn cách nào nhanh và chính xác nhất. Em xin cảm ơn!
 

File đính kèm

Các anh/chị giúp em như sau
Do công việc thường xuyên phải filter để trích lọc, nhưng nếu dùng filter thông thường thì sẽ lâu và không chính xác
Nên em đã lập danh sách cần filter ở ô B1, trong danh sách này các điều kiện cách nhau bởi dấu phẩy, ví dụ: yến, nhung, hồng, hoa, việt, thư
Danh sách cần trích lọc ở cột A (trích lọc không cần phân biệt chữ hoa hay chữ thường)
Nhờ các anh/chị hướng dẫn cách nào nhanh và chính xác nhất. Em xin cảm ơn!
Dùng Advanced Filter.
 

File đính kèm

Upvote 0
Em cảm ơn thầy đã hỗ trợ
Em xin lỗi vì đã đưa ví dụ chưa đầy đủ
Giả sử trong danh sách tên ở cột A như sau
Việt Anh
Anh Việt
Việt Nam muôn năm
Và trong cell B1 có chữ Việt
Như vậy muốn filter những từ là "việt" thì sửa code như thế nào? em cảm ơn
 
Upvote 0
Em cảm ơn thầy đã hỗ trợ
Em xin lỗi vì đã đưa ví dụ chưa đầy đủ
Giả sử trong danh sách tên ở cột A như sau
Việt Anh
Anh Việt
Việt Nam muôn năm
Và trong cell B1 có chữ Việt
Như vậy muốn filter những từ là "việt" thì sửa code như thế nào? em cảm ơn
Đưa dữ liệu thật lên đi, không đến lúc áp code vào file thật lại chả chạy được, mất công người khác lại phải làm lại.
 
Upvote 0
Các anh/chị giúp em như sau
Do công việc thường xuyên phải filter để trích lọc, nhưng nếu dùng filter thông thường thì sẽ lâu và không chính xác
Nên em đã lập danh sách cần filter ở ô B1, trong danh sách này các điều kiện cách nhau bởi dấu phẩy, ví dụ: yến, nhung, hồng, hoa, việt, thư
Danh sách cần trích lọc ở cột A (trích lọc không cần phân biệt chữ hoa hay chữ thường)
Nhờ các anh/chị hướng dẫn cách nào nhanh và chính xác nhất. Em xin cảm ơn!
1> Viết 2 hàm hỗ trợ (code trong module)
Mã:
Function MySplit(ByVal Text As String, Optional ByVal Delimiter As String = ",", _
                 Optional ByVal CompareText As VbCompareMethod = vbBinaryCompare)
  MySplit = Split(Text, Delimiter, , CompareText)
End Function
Sub MyFilter(ByVal SourceRange As Range, ByVal strCriteria As String)
  Dim rngCriteria As Range
  Set rngCriteria = Range("IV1:IV2")
  rngCriteria(2, 1) = "=SUMPRODUCT(COUNTIF($A2,""*""&MySplit(""" & strCriteria & ""","", "",0)&""*""))"
  SourceRange.AdvancedFilter 1, rngCriteria
  rngCriteria.Clear
End Sub
2> Viết code sự kiện cho cell B1 (tức là gõ giá trị tìm vào B1 sẽ filter luôn)
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Address = "$B$1" Then
    If Target.Value = Empty Then
      Target.Parent.ShowAllData
    Else
      MyFilter Range("A1:A1000"), Target.Value
    End If
  End If
End Sub
Thật ra chỉ cần hàm MySplit là bạn có thể filter bằng tay được rồi. Bằng cách gõ vào cell nào đó công thức:
Mã:
=SUMPRODUCT(COUNTIF($A2,"*"&MySplit($B$1,", ",0)&"*"))
rồi dùng AdvanedFilter để lọc theo điều kiện của công thức trên
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom