Có cách nào dùng hàm để lọc một danh sách? (5 người xem)

Liên hệ QC

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

ngocnam

Thành viên mới
Tham gia
22/10/06
Bài viết
12
Được thích
2
Em có một sheet chứa danh sách các học sinh đạt loại giỏi, khá... Nay em muốn dùng hàm để máy tự động lọc riêng học sinh giỏi một cột, khá một cột ( không dùng bộ lọc bằng tay của Excel như Data/filter ) thì làm thế nào? Em lọc cũng được nhưng lại xuất hiện các dòng trắng ở giữa, không đẹp. Mong các bác giúp đỡ, vì gần tổng kết học kì 1 rồi. Xin chân thành cảm ơn
 
Mình vêt thêm cho bạn một hàm LayHS
Bạn thử xem sao.
 

File đính kèm

Hàm mảng tự tạo: kết thúc = tổ hợp fím!

ngocnam đã viết:
Có một danh sách các học sinh đạt loại giỏi, khá... Nay em muốn dùng hàm để máy tự động lọc riêng học sinh giỏi một cột, khá một cột ( không dùng bộ lọc bằng tay của Excel như Data/filter ) thì làm thế nào?
Giả sử CSDL của bạn chỉ gồm các trường [STT], [Ho], [Ten], [Diem], [XLoai]
Dùng hàm mảng tự tạo như sau:
Mã:
 Option Explicit
[b]Function DVLooKup0(CSDL As Object, XepLoai As String) As Variant[/b]
    Dim MDLieu(29, 2) As Variant
 [color="blue"]'Nếu vẫn còn bệnh thành tích thì phải tăng số 29 đến Max(STT)[/color]
    Dim iJ As Integer, iDem As Integer
                                                            Const MaxRec = 99
   Application.ScreenUpdating = 0:          iDem = 0
  For iJ = 1 To 29
         MDLieu(iJ, 1) = "":    MDLieu(iJ, 2) = "":             MDLieu(iJ, 0) = ""
   Next iJ
 For iJ = 1 To MaxRec
    If IsNull(CSDL.Cells(iJ, 1)) Then Exit For    
    If CSDL.Cells(iJ, 5) = XepLoai Then
        MDLieu(iDem, 0) = CSDL.Cells(iJ, 1):            MDLieu(iDem, 2) = CSDL.Cells(iJ, 5)
        MDLieu(iDem, 1) = CSDL.Cells(iJ, 2):            iDem = 1 + iDem
    End If
 Next iJ
Application.ScreenUpdating = True
                                            DVLooKup0 = MDLieu
[b]End Function[/b]
(/ì là hàm mảng nên kết quả sẽ thể hiện trên 1 vùng ô;
bạn phải chọn vùng ô khoảng 20 hàng & ba cột; nhập hàm & ấn cùng lúc tổ hợp fím!
 
Nếu bạn không dùng Advance filter, sort hay là VBA thì bạn dùng các hàm match, index và offset của excel cũng tốt lắm
Bạn test thử nhé
 
Lần chỉnh sửa cuối:
Nếu bạn ngại về VBA thì bạn có thể dùng Advance filter.
Tại sao dùng filter lại có dòng trống nhỉ ? Bạn xem lại Điều kiện lọc đi.
 
hoi them ve ham LayHS

Toi muon su dung ham LayHS de loïc mot danh sach co nhieu cot thì phai lam nhu the nao ? Nho anh NVSON chi giup . Xin cam on .
 
Giúp em lấy HSG, HSTT với

Vấn để của em đã nhận được sự giúp đỡ nhiệt tình của các bác trên GPE nên đã được giải quyết xong và được thể hiện trong phần " Hỗ trợ CNLớp THCS - XLHL theo QC 40". Chi tiết tại mục phần chữ ký của em


Nên em xóa tập tin dính kèm trong bài này để giải phóng tài nguyên​
 
Lần chỉnh sửa cuối:
Đơn giản là bạn cứ for từ dòng đầu đến dòng cuối nếu thỏa mãn thì đưa ra, sau đo sắp xếp lại và đánh số thứ tự.
 

- Liệu có cách nào dùng công thức đơn giản không dùng thêm cột phụ mà vẫn làm được như vậy không?
- Dùng cái này ở máy cơ quan (nhiều người dùng chung máy) em lo mấy chương trình diệt virus nó gặm mất thì toi

Em có cái này nữa, giúp em với nhé

Vấn để của em đã nhận được sự giúp đỡ nhiệt tình của các bác trên GPE nên đã được giải quyết xong và được thể hiện trong phần " Hỗ trợ CNLớp THCS - XLHL theo QC 40". Chi tiết tại mục phần chữ ký của em


Nên em xóa tập tin dính kèm trong bài này để giải phóng tài nguyên​
 
Lần chỉnh sửa cuối:
Các bác ơi hộ em với... em có 1 file du liệu có nhiều khách hàng... công việc của em là đối chiều lại số liệu của từng khách hàng đó. mỗi lần muốn đối chiếu lại phải ấn Ctrl+F và nhập mã khách hàng vào mất time quá. các bác giúp em với https://drive.google.com/open?id=0BxnadIIGLOHWYmhaUm0zMVI2cjQ
 
Các bác ơi hộ em với... em có 1 file du liệu có nhiều khách hàng... công việc của em là đối chiều lại số liệu của từng khách hàng đó. mỗi lần muốn đối chiếu lại phải ấn Ctrl+F và nhập mã khách hàng vào mất time quá. các bác giúp em với https://drive.google.com/open?id=0BxnadIIGLOHWYmhaUm0zMVI2cjQ
B14 = INDEX(Nhaplieu!$B$10:$N$26,MATCH('so chi tiet'!Criteria,Nhaplieu!$E$10:$E$26,0),MATCH('so chi tiet'!B$11,Nhaplieu!$B$8:$N$8,0))

Copy công thức qua bên phải
 
Các bác ơi em có một vấn đề nhỏ nữa: giả sử trong file đó cùng một mã khách hàng nhưng nó có 2 giao dịch (tức là 2 hàng thì dùng hàm nào để bên tra cứu nó hiện cả 2 hàng ạ.
mong các bác giúp đỡ ạ
 
Các bác ơi em có một vấn đề nhỏ nữa:
Giả sử trong file đó cùng một mã khách hàng nhưng nó có 2 giao dịch (tức là 2 hàng thì dùng hàm nào để bên tra cứu nó hiện cả 2 hàng ạ.

Chuyện này không nhỏ đâu nha!

Chịu xài hàm mảng người dùng không?
 
Web KT

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

Back
Top Bottom