Lọc dữ liệu nhiều lựa chọn

Liên hệ QC

duong_nam_dao

Thành viên chính thức
Tham gia
2/3/08
Bài viết
89
Được thích
44
Em có một danh sách kèm theo. Em muốn lọc danh sách học sinh để khen thưởng.Khi em đánh số điểm vào ô c18 và ô c19 thì được kết quả lọc xuống ô a20 gồm những học sinh có điểm môn 1,môn 2,... lớn hơn hoặc bằng giá trị ô bên dưới.Ví dụ như lọc những học sinh có điểm văn >=7, toán >=8, sinh >=8, anh >= 6. Nhưng em muốn khi thay đổi lần thi thì kết quả lọc cũng được thay đổi vì các điểm thi mỗi lần khác nhau.Mong các bác giúp đỡ. Cám ơn các bác nhiều !
 

File đính kèm

Thử làm cho bạn bằng công thức nhé (cũng khá đơn giãn với Offset làm chủ lực)
 

File đính kèm

Upvote 0
Cái này bạn dùng Advanced filter cũng được nó đơn giản và nhẹ file
 
Upvote 0
Có thế mà em nghĩ mãi không ra. Cám ơn bác lần nữa
 
Upvote 0
Nhờ Mod xoá giúp bài

Tôi muốn tạo một File mục lục ít nhất 3 cấp: cấp 1 là đơn vị huyện, cấp 2 là đơn vị xã... như mẫu trong file đính kèm

Yêu cầu:
1- khi nút (ToggleButton) cấp 1 chìm xuống thì danh mục cấp 2 hiện ra, khi nút cấp 1 nổi lên thì danh mục cấp 2 ẩn đi.
2- khi nút cấp 2 chìm xuống thì danh mục cấp 3 hiện ra, khi nút cấp 2 nổi lên thì danh mục cấp 3 ẩn đi.

Lưu ý: Danh mục cấp cuối cùng là các ô Cell để Hyperlink đến các file cần tìm.
Tuy nhiên các bạn có thể đưa ra các phương án khác miến là đáp ứng được yêu cầu quản lý file theo yêu cầu riêng của người dùng.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em làm theo file của bác ndu mãi mà không được. Em gửi file lên cho các bác xem. Không biết sai ở đâu, thôi nhờ bác làm hộ. Cám ơn bác rất nhiều !
 

File đính kèm

Upvote 0
Em làm theo file của bác ndu mãi mà không được. Em gửi file lên cho các bác xem. Không biết sai ở đâu, thôi nhờ bác làm hộ. Cám ơn bác rất nhiều !
File nhỉn khủng quá. Bạn có thể cắt nhỏ, hỏi từng phần.
Đâu cần name Hoten6 làm gì.
Công thức ở AN4 là nói lên cái gì vậy.
=IF(AND(OFFSET($P4:$S4,,($D$363-1)*4)>=$H$364:$R$364),ROWS($1:1),"")
Thiếu cái gì đó
AND(OFFSET($P4:$S4,,($D$363-1)*4)>=$H$364:$R$364) và cái gì nữa.
Phải là
AND(OFFSET($P4:$S4,,($D$363-1)*4)>=$H$364:$R$364),...)
Đã đặt name thì sao không đặt hết mà đặt có 1/2 vậy.
$AG$5:$AJ$14: ...
$AI$5:$AI$14:....
Nếu tên là 1 chữ thì chỉ lấy họ or tên ...
Vài chuyện góp ý!
 
Upvote 0
Đó chỉ là 1 trang trong file của em. Em đã bỏ bớt các phần không cần thiết và ghi rõ ý định trong file mới. Mong các bác xem hộ em.
 

File đính kèm

Upvote 0
Đúng vậy! Hãy xem thêm trong file kèm theo.

Cái này bạn dùng Advanced filter cũng được nó đơn giản và nhẹ file
Hướng dẫn sử dụng trước khi dùng:
* Đổi điểm chuẩn trước khi chọn lần kiểm tra (nếu cần)
* Nếu thêm Danh sách HS thì di chuyển 'Bộ Lọc' đến nơi khác thích hợp

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [b17]) Is Nothing Then
   Dim lRow As Long:                Dim VTr As Byte
   Dim Rng As Range
   
   lRow = [a65432].End(xlUp).Row
   Range([t4], Cells(lRow, "T")) = Range([b4], Cells(lRow, "B")).Value
   VTr = Len(Target) - InStr(Target, " ")
   Set Rng = Choose(Right(Target, VTr), [c4], [g4], [k4], [o4]).Resize(lRow - 3, 4)
   Range([u4], Cells(lRow, "X")).Value = Rng.Value
   
   Range("T4:X" & lRow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "H17:K18"), CopyToRange:=Range("G23:K23"), Unique:=False
 End If
End Sub
 

File đính kèm

Upvote 0
Các bác xem hộ em cái file Khen thuong moi ở mục 10 cái. Không biết vì sao em làm mà không được. Nhờ các bác ra tay giúp với
 
Upvote 0
Không biết tại sao em chạy file của bác nó cứ giật giật khung và chữ rồi mới cho kết quả. Có lẽ nó lọc chậm à? Có khắc phục được không? Nếu chạy nhanh hơn thì tốt vì file của em đã nặng rồi. Chờ tin bác
 
Upvote 0
Giảm rung, giật khi chạy công thức

Không biết tại sao em chạy file của bác nó cứ giật giật khung và chữ rồi mới cho kết quả. Có lẽ nó lọc chậm à? Có khắc phục được không? Nếu chạy nhanh hơn thì tốt vì file của em đã nặng rồi. Chờ tin bác
Vào Edit\Links nhấn nút Break Link -> Break Links -> Close

Nếu vẫn còn rung giật thì
  1. Dùng VBA
  2. Thay máy cấu hình cao hơn
 
Upvote 0
Xem thêm trong file đính kèm!

Macro, đây macro:
PHP:
Option Explicit
Sub TongHop()
 Dim Lrow As Long:                     Dim Rng As Range
 Lrow = [B65432].End(xlUp).Row
 With Sheets("Report")
   .Range("A3:A" & Lrow) = Range("B3:B" & Lrow).Value
   Set Rng = Choose([ag1].Value, [p3], [t3], [x3], [ab3]).Resize(Lrow, 4)
   .Range("B3:E" & Lrow).Value = Rng.Value
   .Range("A3:E" & Lrow).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
        "H1:K2"), CopyToRange:=.Range("G3:K3"), Unique:=False
   .Select
 End With
 
End Sub


duong_nam_dao chú ý hơn khi đưa file lên nha, cho dù là giả lập
 

File đính kèm

Upvote 0
Đáng tiếc là Advanced Filter không chơi chung với "dịch vụ" Union, nên cuối cùng muốn AF thì đành phải qua nhiều công đoạn trung gian không được hay cho lắm
Nếu AF để trích điểm ra trước, rồi dùng For quét qua để lấy tên học sinh xem bộ chắc không có vấn đề (đở tốn vùng phụ) nhưng cũng không hay
 
Upvote 0
Đúng vậy. Em đã lọc điểm giai đoạn ra trước rồi mới lọc danh sách khen thưởng nhưng không được. Các bác nghiên cứu xem có cách nào hay hơn và nhanh hơn không ? Em thì kém món này không nói làm gì. Làm tất cả trong một trang có được không? Ưu và nhược thế nào, mong các bác góp ý. Xn chân thành cảm ơn các bác !
 
Upvote 0
... Làm tất cả trong một trang có được không? ...
Hoàn toàn có thể làm được

Nhưng theo mình
  1. Để tiện lợi cho việc nhập dữ liệu thì nên để 1 sheet nhập liệu, kết quả lọc để sang sheet khác
  2. Còn tiện lợi cho việc căn chỉnh trang in
Để tất cả trong 1 sheet
  1. Nếu không dự phòng trước số dòng số liệu nhập để cách thì vướng vào phần công thức lọc
  2. Nếu chèn dòng vào để nhập đủ thì lại phải căn chỉnh lại trang in phần lọc
  3. Kiểm tra kết quả lọc cũng bất lợi (lần mãi mấy trăm dòng xuống dưới hoặc cột cuối phần nập liệu)
  4. ...........
 
Upvote 0
Web KT

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

Back
Top Bottom