Advanced filter lọc cả 2 xưởng (1 người xem)

  • Thread starter Thread starter DMQ
  • Ngày gửi Ngày gửi

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

DMQ

Thành viên dốt
Tham gia
21/3/12
Bài viết
722
Được thích
57
Giới tính
Nam
Em có file này, dùng Advanced Filter để lọc Xưởng Sản Xuất. Em không thể gỏ May 2 hoặc May 1 được vì Excell nó tự đổi thành mùng 2 tháng năm(May -02) nên em phải gỏ là May II hoặc May I. Sao khi code chạy lọc May I ở G1 thì có cả May II luôn. Mong các AC giúp đỡ!!!
 

File đính kèm

Em có file này, dùng Advanced Filter để lọc Xưởng Sản Xuất. Em không thể gỏ May 2 hoặc May 1 được vì Excell nó tự đổi thành mùng 2 tháng năm(May -02) nên em phải gỏ là May II hoặc May I. Sao khi code chạy lọc May I ở G1 thì có cả May II luôn. Mong các AC giúp đỡ!!!

nó không phân biệt được I và II (vì II là hay chữ I, nó không hiểu)
======
gõ May 2 thành ngày 2 tháng 5 là do bạn để ở định dạng general, đổi nó qua text là được
=========
còn cứ nhất định để May I May II thì
G1 gõ vào Exact match
G2=EXACT(B5,"May I")

thì nó chạy tốt
 
Upvote 0
nó không phân biệt được I và II (vì II là hay chữ I, nó không hiểu)
======
gõ May 2 thành ngày 2 tháng 5 là do bạn để ở định dạng general, đổi nó qua text là được
=========
còn cứ nhất định để May I May II thì
G1 gõ vào Exact match
G2=EXACT(B5,"May I")

thì nó chạy tốt
Không phải là nó không hiểu mà tại người dùng hiểu sai nó thôi. Vốn dĩ nó là vậy mà, rơi vào trường hợp này thì xử lý bằng True và False
 
Upvote 0
Trong trường hợp này kí tự đại diện trong excel nó 'tài lanh' nên hại bạn;

Bạn fải gõ như vầy trong ô [G2]

="=" &"May I"

--=0--=0--=0
 
Upvote 0
Em đã chỉnh cột B thành định dạng Text, thì gỏ được May 2, và cell G2 gỏ may 2 thì lọc được, nhưng cell G2 vẫn hiện là May-02, còn nếu G2 định dạng thành Text thì gỏ May 2, hiện chữ là May 2 nhưng không lọc được. Còn ý của bạn HYen17 thì gỏ vậy mất công quá, còn ý của Anh quanghai1969 thì em không hiểu(có phải là lọc duy nhất không Anh????)
 
Upvote 0
Em đã chỉnh cột B thành định dạng Text, thì gỏ được May 2, và cell G2 gỏ may 2 thì lọc được, nhưng cell G2 vẫn hiện là May-02, còn nếu G2 định dạng thành Text thì gỏ May 2, hiện chữ là May 2 nhưng không lọc được. Còn ý của bạn HYen17 thì gỏ vậy mất công quá, còn ý của Anh quanghai1969 thì em không hiểu(có phải là lọc duy nhất không Anh????)

sao tôi thấy nó chạy ào ào mà???!!!
 

File đính kèm

Upvote 0
Sao kỳ vậy Anh Let'GâuGâu, em tải file của Anh về gỏ may 2, code chạy nhưng không có dữ liệu. Chẳng hiểu làm sao nữa!!!!
 
Upvote 0
Em có file này, dùng Advanced Filter để lọc Xưởng Sản Xuất. Em không thể gỏ May 2 hoặc May 1 được vì Excell nó tự đổi thành mùng 2 tháng năm(May -02) nên em phải gỏ là May II hoặc May I. Sao khi code chạy lọc May I ở G1 thì có cả May II luôn. Mong các AC giúp đỡ!!!
Thử code này đi. Thiếu gì cách xử.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [G2:H2]) Is Nothing Then
   Application.EnableEvents = False
   Dim tam
   If Target.Column = 7 Then
      tam = Target
      Target.FormulaR1C1 = "=""=" & "" & "" & tam & """"
   End If
   [A4:E10000].AdvancedFilter 2, [G1:H2], [G4:J4]
   If Target.Column = 7 Then Target = tam
   Application.EnableEvents = True
End If
End Sub
 
Upvote 0
Em có file này, dùng Advanced Filter để lọc Xưởng Sản Xuất. Em không thể gỏ May 2 hoặc May 1 được vì Excell nó tự đổi thành mùng 2 tháng năm(May -02) nên em phải gỏ là May II hoặc May I. Sao khi code chạy lọc May I ở G1 thì có cả May II luôn. Mong các AC giúp đỡ!!!

thì bạn gõ thêm dấu nháy trên, ví dụ
'May 1
'May 2
........
 
Upvote 0
Nguồn gốc vấn đề là giải quyết kí tự đại diện '?' & '*' trong excel

Nếu gõ 'May I' thì nó sẽ lôi tất cả 'May I' & cả 'May II' hay các loại . . . 'May IV' nữa luôn!

Cách khắc fục là 2uang Hải & HYen17 đã nêu trên;

Cách căn cơ nhất vẫn là các mã này có độ dài như nhau, như May 01, May 09,. . .

Hay như trong dữ liệu của chủ topic fải là: May I__, May II_,. . .

Ngoài ra có 1 cách nhập gián tiếp, như sau

Ta gán macro sự kiện cho ô bên dưới ô [G2] hiện giờ, (như ô [G4])

Nhưng tại [G2] ta áp sẵn công thức tương tự như đã nêu bài trên.

="=" & G4

Với cách này thì ta khỏi fiền do gõ dái dòng & được việc.
 
Upvote 0
Em lại làm phiền các AC lần nữa rồi. Mong các AC chỉnh code lại để lọc chính xác. Ở sheet"Thang", em gỏ May I để lọc May I sao có cả May II nữa, Mong các AC giúp đỡ!!!!
 

File đính kèm

Upvote 0
Em lại làm phiền các AC lần nữa rồi. Mong các AC chỉnh code lại để lọc chính xác. Ở sheet"Thang", em gỏ May I để lọc May I sao có cả May II nữa, Mong các AC giúp đỡ!!!!

Bạn xài macro sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rng As Range
 
 Set Rng = Sheet1.[a5].CurrentRegion
 If Not Intersect(Target, Sheet2.[C2].Resize(, 3)) Is Nothing Then
   Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet2.Range( _
        "D1:F2"), CopyToRange:=Sheet2.Range("A4:d4"), unique:=False
 End If
End Sub

Với thêm thiết chế như sau:

[TABLE="class: grid, width: 300, align: center"]
[TR]
[TD][/TD]
[TD]F[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]=C1[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]="=" & C2[/TD]
[/TR]
[/TABLE]
 
Upvote 0
Em lại làm phiền các AC lần nữa rồi. Mong các AC chỉnh code lại để lọc chính xác. Ở sheet"Thang", em gỏ May I để lọc May I sao có cả May II nữa, Mong các AC giúp đỡ!!!!

Tặng cho con dao mổ trâu nè
Trong 3 cái ô tô màu đó thích làm gì cũng có dữ liệu. Nếu muốn lấy dữ liệu không theo ngày thì tốt nhất cho sẵn 1 ngày nhỏ thật nhỏ và ngày kia lớn thật lớn.
ADO thì khỏi chê rồi
 

File đính kèm

Upvote 0
VBA em còn chua biết nữa, nói chi đến ADO. Nhưng con dao mổ trâu của Anh sao em tải về nó chẳng có mổ được con trâu nào hết Vậy?????? Có thể trong office của em nó thiếu cái gì chăng?????
Cám ơn Anh!!!
 
Upvote 0
VBA em còn chua biết nữa, nói chi đến ADO. Nhưng con dao mổ trâu của Anh sao em tải về nó chẳng có mổ được con trâu nào hết Vậy?????? Có thể trong office của em nó thiếu cái gì chăng?????
Cám ơn Anh!!!
Ái chà ai biết là trong máy tính của bạn có trâu hay không. Để xem có ai mổ được thì la lên cho bạn biết.
 
Upvote 0
VBA em còn chua biết nữa, nói chi đến ADO. Nhưng con dao mổ trâu của Anh sao em tải về nó chẳng có mổ được con trâu nào hết Vậy?????? Có thể trong office của em nó thiếu cái gì chăng?????
Cám ơn Anh!!!

Đoán: Có khi bạn xài Office 2013 cũng không chừng (không chắc rằng câu lệnh trên có chạy được trên Excel 2013 hay không)
 
Upvote 0
VBA em còn chua biết nữa, nói chi đến ADO. Nhưng con dao mổ trâu của Anh sao em tải về nó chẳng có mổ được con trâu nào hết Vậy?????? Có thể trong office của em nó thiếu cái gì chăng?????
Cám ơn Anh!!!

thế này thui
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, [c2].Resize(, 3)) Is Nothing Then
            On Error GoTo 111
            Application.EnableEvents = False
            Dim tg: tg = [c2].Value
            [c2].Value = "'=" & tg
            Sheet1.[a5].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("C1:E2"), _
                                                     CopyToRange:=Range("A4:D4"), unique:=False
            [c2].Value = tg
111:        Application.EnableEvents = True
     End If
End Sub


dùng mẹo chút là được có chi
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ em xài office 2007, win XP, mở file lên khi chọn lại thì không lọc gì hết. Mong các AC xem dùm em, chắc em nghi máy em không có con trâu nào rồi!!!!!
 
Upvote 0
Dạ em xài office 2007, win XP, mở file lên khi chọn lại thì không lọc gì hết. Mong các AC xem dùm em, chắc em nghi máy em không có con trâu nào rồi!!!!!

Xem bài #19, lúc trước tôi quên code

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, [c2].Resize(, 3)) Is Nothing Then
            On Error GoTo 111
            Application.EnableEvents = False
            Dim tg: tg = [c2].Value
            [c2].Value = "'=" & tg
            Sheet1.[a5].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("C1:E2"), _
                                                     CopyToRange:=Range("A4:D4"), unique:=False
            [c2].Value = tg
111:        Application.EnableEvents = True
     End If
End Sub
 
Upvote 0
Đọc kỹ file mới thấy phần D1:E2 để chữ trắng và dùng làm trung gian lọc, hãy đẩy cái này cho VBA làm việc,
Như thế code như trong file kèm
chú ý: ô A1 B1 hiện tôi đang để From, To để bạn sửa lại tiếng Việt (vào FORMAT CELL để làm)

như thế thì không cần các ô D1: E2 nữa, xóa lun đi
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
     If Not Intersect(Target, [a2:c2]) Is Nothing Then
            On Error GoTo 111
            Application.EnableEvents = False
            Application.ScreenUpdating = False
            Dim tg, d, j As Long
            d = Array("'>=", "'<=", "'=")
            tg = [a2:c2].Value
            For j = 1 To 3
                d(j - 1) = d(j - 1) & tg(1, j)
            Next j
            [a2:c2].Value = d
            Range("A5:D65000").ClearContents
            Sheet1.[a5].CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A1:C2"), _
                                                     CopyToRange:=Range("A4:D4"), unique:=False
            [a2:c2].Value = tg
111:        Application.EnableEvents = True
            Application.ScreenUpdating = True
     End If
End Sub
 

File đính kèm

Upvote 0
File của Anh quanghai1969, em tải ở máy khác thì chạy ào ào, vậy là office 2007 của máy ở Cty chắc bị lỗi gì rồi.
Cám ơn bạn MuaBuiRoi đã giúp, học hỏi thêm cách làm của bạn!!!!
 
Upvote 0
File của Anh quanghai1969, em tải ở máy khác thì chạy ào ào, vậy là office 2007 của máy ở Cty chắc bị lỗi gì rồi.
Cám ơn bạn MuaBuiRoi đã giúp, học hỏi thêm cách làm của bạn!!!!
Theo mình thì không nên dùng ADO hay AdvancedFilter trong trường hợp này sẽ không tốt tí nào. Nên dùng vòng lặp, phương pháp truyền thống, an toàn chính xác, không kén dữ liệu.
 
Upvote 0
Anh quanghai1969 có thể làm bằng vòng lặp cho em học hỏi được không Ah!!! Em không rành VBA cho lắm.
 
Upvote 0
Anh quanghai1969 có thể làm bằng vòng lặp cho em học hỏi được không Ah!!! Em không rành VBA cho lắm.

Trong vùng A2 đến E2 muốn nhập gì cũng được. Muốn nhập thì nhập, bỏ trống cũng ra kết quả.
 

File đính kèm

Upvote 0
Anh quanghai1969 cho em học hỏi tí code của Anh Ah!!! Sao Anh lại ""Project is unviewable".
 
Upvote 0

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

Back
Top Bottom