Lọc dữ liệu bằng Auto Filter

Liên hệ QC

hoahuongduong1986

Thành viên thường trực
Tham gia
14/11/18
Bài viết
346
Được thích
40
Kính gửi anh chị và các bạn,
Em muốn lọc với điều kiện Ma_hang khác 002 và sau khi lọc xong thì bỏ lọc tại sheet1. Em đã làm code nhưng kết quả không lọc được. ANh chị xem giúp em với ạ.
 

File đính kèm

  • Loc du lieu.xlsm
    21.9 KB · Đọc: 16
Kính gửi anh chị và các bạn,
Em muốn lọc với điều kiện Ma_hang khác 002 và sau khi lọc xong thì bỏ lọc tại sheet1. Em đã làm code nhưng kết quả không lọc được. ANh chị xem giúp em với ạ.
Bạn kiểm tra nhé:

1627537910196.png
Xin lỗi, bạn sửa J2 "002" thành "<>002" để lọc điều kiện khác 002.
Mã:
Option Explicit
Sub Loc()
    Sheet2.Range("A1").CurrentRegion.Clear
    Sheet1.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet1.Range("J1:J2"), CopyToRange:=Sheet2.Range("A1").Resize(, Sheet1.Range("A1").CurrentRegion.Columns.Count), Unique:=False
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn kiểm tra nhé:

View attachment 263255
Xin lỗi, bạn sửa J2 "002" thành "<>002" để lọc điều kiện khác 002.
Mã:
Option Explicit
Sub Loc()
    Sheet2.Range("A1").CurrentRegion.Clear
    Sheet1.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheet1.Range("J1:J2"), CopyToRange:=Sheet2.Range("A1").Resize(, Sheet1.Range("A1").CurrentRegion.Columns.Count), Unique:=False
End Sub
Em cảm ơn chị OT !
Vẫn không được chị ạ.
+ Nếu em để tại J2 là "<>002" như chị bảo thì ra trắng
+ Nếu em để tại J2 là <>002 thì nó ra tất cả như sheet gốc.
 
Upvote 0
Em cảm ơn chị OT !
Vẫn không được chị ạ.
+ Nếu em để tại J2 là "<>002" như chị bảo thì ra trắng
+ Nếu em để tại J2 là <>002 thì nó ra tất cả như sheet gốc.
Thử xóa J1, trong J2 điền công thức bên dưới rồi chạy lại code:

=AND(LEFT(G2,3)<>"002",G2<>"")

.
 
Upvote 0
Mình thấy cách của anh @Phuocam ra kết quả mà
Thế đoạn này từ CriteriaRange:=Sheet1.Range("J1:J2") thành CriteriaRange:=Sheet1.Range("J2") à anh. EM đã thử mà vẫn không được ạ.
Với cách của em em sheet tại J1 là 002 ở dạng text và đặt nó là T (Dim T as string)
T = Cells(1, "J").Value
Và Criteria1:="<>T"
NHưng vẫn không được.
 
Upvote 0
Thế đoạn này từ CriteriaRange:=Sheet1.Range("J1:J2") thành CriteriaRange:=Sheet1.Range("J2") à anh. EM đã thử mà vẫn không được ạ.
Với cách của em em sheet tại J1 là 002 ở dạng text và đặt nó là T (Dim T as string)
T = Cells(1, "J").Value
Và Criteria1:="<>T"
NHưng vẫn không được.
Code bài #2 và điều kiện của bài #4
Dùng advanced Filter, kết quả cho ra ở sheet Copy chuẩn mà bạn
 
Upvote 0
Thế đoạn này từ CriteriaRange:=Sheet1.Range("J1:J2") thành CriteriaRange:=Sheet1.Range("J2") à anh. EM đã thử mà vẫn không được ạ.
Với cách của em em sheet tại J1 là 002 ở dạng text và đặt nó là T (Dim T as string)
T = Cells(1, "J").Value
Và Criteria1:="<>T"
NHưng vẫn không được.
Mình chỉ áp dụng theo cái bài của anh trên kia nhé
 

File đính kèm

  • Loc du lieu theo.xlsm
    21.4 KB · Đọc: 5
Upvote 0
Mình chỉ áp dụng theo cái bài của anh trên kia nhé
Em cứ nghĩ cái G2 là anh ý lấy nó vì nó có mã 002, nhưng dùng mới hiểu ý nghĩa. Nhưng Nó không lấy được cái Dòng tổng cộng ạ. Và ở đây em đã dùng SUbtotal 9 để nó cộng dòng ẩn.
+ Làm sao để lấy được thêm dòng tổng cộng ạ
+ Nếu vẫn dùng theo các của em làm thì làm sao ạ. Chỗ điều kiện này làm thế nào ạ. EM đã làm thử trong code mà vẫn không được.
 

File đính kèm

  • Loc du lieu theo - 2c.xlsm
    23.1 KB · Đọc: 3
Upvote 0
Em cứ nghĩ cái G2 là anh ý lấy nó vì nó có mã 002, nhưng dùng mới hiểu ý nghĩa. Nhưng Nó không lấy được cái Dòng tổng cộng ạ. Và ở đây em đã dùng SUbtotal 9 để nó cộng dòng ẩn.
+ Làm sao để lấy được thêm dòng tổng cộng ạ
+ Nếu vẫn dùng theo các của em làm thì làm sao ạ. Chỗ điều kiện này làm thế nào ạ. EM đã làm thử trong code mà vẫn không được.
Thế thì điền cái gì bất kì vào cái cột G dòng tổng cộng ấy
 
Upvote 0
Thế thì điền cái gì bất kì vào cái cột G dòng tổng cộng ấy
Không biết có phải do máy em không. Em đã để chế độ automatic và còn thêm đoạn này Application.Calculation = xlCalculationAutomatic mà chỗ ô Tổng khi lọc nó vẫn tính cả, mà không phải tính các dòng lọc. Phải bấm F2 và Enter nó mới tính
 
Upvote 0
Em cứ nghĩ cái G2 là anh ý lấy nó vì nó có mã 002, nhưng dùng mới hiểu ý nghĩa. Nhưng Nó không lấy được cái Dòng tổng cộng ạ. Và ở đây em đã dùng SUbtotal 9 để nó cộng dòng ẩn.
+ Làm sao để lấy được thêm dòng tổng cộng ạ
+ Nếu vẫn dùng theo các của em làm thì làm sao ạ. Chỗ điều kiện này làm thế nào ạ. EM đã làm thử trong code mà vẫn không được.
Bạn tham khảo thêm:
Mã:
Sub Loc_2()
    Dim rng As Range, rU As Range, i As Long, r As Long, k As Long, c As Long
    Sheet2.Range("A1").CurrentRegion.Clear
    Set rng = Sheet1.Range("A1")
    c = rng.CurrentRegion.Columns.Count
    r = rng.CurrentRegion.Rows.Count
    Set rU = rng.Resize(, c)
    For i = 2 To r - 1
        If rng(i, 7).Value <> Sheet1.Range("J2") Then ' điều kiện khác với dữ liệu nhập vào ô J2 của sheet data
            Set rU = Union(rU, rng(i).Resize(, c))
            k = k + 1
        End If
    Next i
    rU.Copy Sheet2.Range("A1")
    rng(r).Resize(, c).Copy Sheet2.Range("A" & k + 2)
    Sheet2.Range("C" & k + 2) = "=SUBTOTAL(9,C2:C" & k + 1 & ")"
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom