Code VBA lọc điều kiện top (1 người xem)

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

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

Tôi tuân thủ nội quy khi đăng bài

eagle12

Thành viên mới
Tham gia
18/12/13
Bài viết
47
Được thích
14
Chào các anh chị, xin nhờ mọi người hướng dẫn code để lọc đk Top 10, top 5 trên bảng giá trị mà trước đó đã có chạy 1 điều kiện lọc khác rồi

Em đang thử đoạn 2 code dưới để chạy, nhưng KQ trả về không giống như mong muốn ---> do top 10 thì không có mã nào thỏa mãn SL trên 500K

Cám ơn mọi người rất nhiều

1764817980766.png
Mã:
Sub Vol_10()

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

Sheets("Sheet1").Select
On Error Resume Next
Sheets("Sheet1").ShowAllData
On Error GoTo 0

SL = ">=" & ws.Range("E2").Value

ws.Range("C3:F" & [C10000].End(xlUp).Row).AutoFilter Field:=3, Criteria1:=SL
ws.Range("C3:F" & [C10000].End(xlUp).Row).AutoFilter Field:=4, Criteria1:="10", Operator:=xlTop10Items


End Sub
 

File đính kèm

Gưi
Chào các anh chị, xin nhờ mọi người hướng dẫn code để lọc đk Top 10, top 5 trên bảng giá trị mà trước đó đã có chạy 1 điều kiện lọc khác rồi

Em đang thử đoạn 2 code dưới để chạy, nhưng KQ trả về không giống như mong muốn ---> do top 10 thì không có mã nào thỏa mãn SL trên 500K

Cám ơn mọi người rất nhiều

View attachment 310503
Mã:
Sub Vol_10()

Dim ws As Worksheet
Set ws = Worksheets("Sheet1")

Sheets("Sheet1").Select
On Error Resume Next
Sheets("Sheet1").ShowAllData
On Error GoTo 0

SL = ">=" & ws.Range("E2").Value

ws.Range("C3:F" & [C10000].End(xlUp).Row).AutoFilter Field:=3, Criteria1:=SL
ws.Range("C3:F" & [C10000].End(xlUp).Row).AutoFilter Field:=4, Criteria1:="10", Operator:=xlTop10Items


End Sub
Gửi bạn xem đã đúng ý chưa, bạn chỉ muốn lọc theo điều kiện là số lượng >500 thì chỉ cần 1 điều kiện thỏa mãn là nó sẽ ra mà, còn nếu 2 điều kiện thì điều kiện 2 là gì , còn đây chỉ cần 1 điều kiện là lọc 10 cell lớn nhất thì chỉ cần code này là ra
 

File đính kèm

Gưi

Gửi bạn xem đã đúng ý chưa, bạn chỉ muốn lọc theo điều kiện là số lượng >500 thì chỉ cần 1 điều kiện thỏa mãn là nó sẽ ra mà, còn nếu 2 điều kiện thì điều kiện 2 là gì , còn đây chỉ cần 1 điều kiện là lọc 10 cell lớn nhất thì chỉ cần code này là ra
Cám ơn bác, file lọc em cần lọc 2 đk như sau
1 Lọc cột E - SL : giá trị >=500K
2 Sau đó lọc tiếp 10 giá trị lớn nhất, top 10 tại cột F-Rate % sau khi đã lọc cột E - SL

KQ nếu em lọc tay thì sẽ ra như này bác

1764822659794.png
 
Cám ơn bác, file lọc em cần lọc 2 đk như sau :
1 Lọc những
cột rate có ý nghĩa gì chưa hiểu ý nghĩa của cột này và công thức nào để ra được cái cột rate đó
Bài đã được tự động gộp:

cột rate có ý nghĩa gì chưa hiểu ý nghĩa của cột này và công thức nào để ra được cái cột rate đó
Gửi lại file xem đúng ý bạn chưa
 

File đính kèm

Lần chỉnh sửa cuối:
cột rate có ý nghĩa gì chưa hiểu ý nghĩa của cột này và công thức nào để ra được cái cột rate đó
Bài đã được tự động gộp:


Gửi lại file xem đúng ý bạn chưa
Xin lỗi bác, em ấn nhầm lên post bài sớm rồi lúc đang sửa lại bài viết bác trả lời luôn vào bài cũ

File lọc em cần lọc 2 đk như sau
1 Lọc cột E - SL : giá trị >=500K
2 Sau đó lọc tiếp 10 giá trị lớn nhất, top 10 tại cột F-Rate %

KQ nếu em lọc tay thì sẽ ra như này bác

1764824462631.png
 
Xin lỗi bác, em ấn nhầm lên post bài sớm rồi lúc đang sửa lại bài viết bác trả lời luôn vào bài cũ

File lọc em cần lọc 2 đk như sau
1 Lọc cột E - SL : giá trị >=500K
2 Sau đó lọc tiếp 10 giá trị lớn nhất, top 10 tại cột F-Rate %

KQ nếu em lọc tay thì sẽ ra như này bác

View attachment 310511
Bạn chạy xem đúng ý chưa
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn chạy xem đúng ý chưa
Em cám ơn bác rất nhiều, code chạy ra đúng mong muốn rồi bác ah
Bài đã được tự động gộp:

Dùng hàm Filter lọc được rồi. Office bạn đang xài là phiên bản gì?
Em dùng excel 365, có hàm filter
Nhưng chỗ bảng tính kia là báo cáo, nó có nhiều cột điều kiện lọc, nên em đang dùng là tìm nhiều sub VBA để lọc cho mỗi loại báo cáo trong đó
 
Em cám ơn bác rất nhiều, code chạy ra đúng mong muốn rồi bác ah
Bài đã được tự động gộp:


Em dùng excel 365, có hàm filter
Nhưng chỗ bảng tính kia là báo cáo, nó có nhiều cột điều kiện lọc, nên em đang dùng là tìm nhiều sub VBA để lọc cho mỗi loại báo cáo trong đó
Bạn đã test thử trường hợp nếu như ô điều kiện ở E2 lớn hơn vùng giá trị cột E chưa
Trong dữ liệu của bạn thì lớn nhất là 62tr, nếu điều kiện là 63tr trở lên thì sao.
 
Tôi cũng làm 1 file theo ý bạn, bên cạnh đó tôi cũng có làm 1 cách của công thức 365.
 

File đính kèm

Tôi cũng làm 1 file theo ý bạn, bên cạnh đó tôi cũng có làm 1 cách của công thức 365.
Cám ơn anh rất nhiều ạ
Code vba và hàm filter kết hợp với hàm Take cho ra KQ đúng như mong muốn anh
Hôm nay em học thêm được hàm Take trong excel 365

Cám ơn anh

P/S: So với dùng pivot-table để lấy top10 kết quả, thì kết hợp hàm Take(Filter) có nhẹ hơn không anh nhỉ
File tổng e đang sử dụng nhiều pivot-table, có vẻ làm file bị nặng đi nhiều

1764896719470.png
 
Cám ơn anh rất nhiều ạ
Code vba và hàm filter kết hợp với hàm Take cho ra KQ đúng như mong muốn anh
Hôm nay em học thêm được hàm Take trong excel 365

Cám ơn anh

P/S: So với dùng pivot-table để lấy top10 kết quả, thì kết hợp hàm Take(Filter) có nhẹ hơn không anh nhỉ
File tổng e đang sử dụng nhiều pivot-table, có vẻ làm file bị nặng đi nhiều

View attachment 310520
File bạn nặng thì tôi không dám đưa ra kết luận.
Bạn có 1 file nhiều sheet, mỗi sheet chứa data tới chục nghìn dòng kèm công thức, cột phụ v.v....
Hơn nữa bạn kiểm tra xem có name rác hay không, xóa usedrange v.v.....


Tôi có 1 cách gợi ý. Thay vì bạn tạo ra cùng lúc 10 cái báo cáo lọc điều kiện thì bạn vô name manager đặt tên cho 10 công thức đó.
Khi bạn cần xem báo cáo của sheet nào thì bạn chỉ cần chọn cái bạn cần xem. Hơn nữa bạn cũng có thể xem được song song các báo cáo cùng 1 sheet.

Note: Nếu bạn gửi báo cáo cho các đồng nghiệp khác xem, mà máy họ không có 365 thì bạn dùng pivot là ổn nhất.
Chúc bạn thành công!
 

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

Back
Top Bottom