Cần hỗ trợ lọc danh sách mà không dùng filter (1 người xem)

Liên hệ QC

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

abc12199

Thành viên hoạt động
Tham gia
15/8/07
Bài viết
113
Được thích
14
mình có danh sách toàn trường
muốn lọc danh sách học sinh theo khối và lớp mà không dùng filter.
Nhờ các Bác giúp đỡ
* có file lọc mẫu dùng công thức "=IFERROR(OFFSET(B$1,AGGREGATE(15,6,ROW($1:$114)/(A$1:A$114=H$2),ROW(A1))-1,),"")" mà mình không hiểu xin chỉ giáo ạ
 

File đính kèm

Lần chỉnh sửa cuối:
mình có danh sách toàn trường
muốn lọc danh sách học sinh theo khối và lớp mà không dùng filter.
NHỜ CÁC BÁC GIÚP ĐỠ
* có file lọc mẫu dùng công thức "=IFERROR(OFFSET(B$1,AGGREGATE(15,6,ROW($1:$114)/(A$1:A$114=H$2),ROW(A1))-1,),"")" mà mình không hiểu xin chỉ giáo ạ
Bạn nên học cách sử dụng Advanced Filter cho lẹ hoặc nhanh nhất là sử dụng VBA.
Muốn sử dụng VBA thì đăng bài trong Box Lập trình với Excel.
 
Lần chỉnh sửa cuối:
Oh quá hay, cảm ơn bạn rất nhiều. Nhưng chưa hiểu công thức lắm. Bạn có thể giải thích được không ạ.
 
Lần chỉnh sửa cuối:
Oh quá hay, cảm ơn bạn rất nhiều. nhưng chưa hiểu công thức lắm. bạn có thể giải thích được không ạ.
Kỹ năng giải thích mình kém lắm, mấy lần thử các bạn toàn hiểu nhầm thôi.
File bài #4 ban nãy mình mới chỉ để lớp 10, mình vừa thêm cả lớp 11 và 12 rồi đấy.
 
Lần chỉnh sửa cuối:
mình có danh sách toàn trường
muốn lọc danh sách học sinh theo khối và lớp mà không dùng filter.
NHỜ CÁC BÁC GIÚP ĐỠ
* có file lọc mẫu dùng công thức "=IFERROR(OFFSET(B$1,AGGREGATE(15,6,ROW($1:$114)/(A$1:A$114=H$2),ROW(A1))-1,),"")" mà mình không hiểu xin chỉ giáo ạ
Dùng pivot table nhanh và tiện
 
Lần chỉnh sửa cuối:
Mình xài Advanced Filter nhưng bảng tính cần thay đổi khi nhập liệu. VBA thì cao siêu quá
Nếu bạn biết dùng Advanced Filter rồi thì học cách Record Macro sẽ được code và học cách thiết lập chế độ sử dụng Macro sẽ chẳng có gì khó cả.
Bạn nên tập làm quen dần với VBA đi, bạn sẽ thấy được hiệu quả của nó, ví dụ:
- In phiếu thu tiền của học sinh hàng loạt.
- In phiếu nợ tiền của học sinh.
....v....v...........
 
Lần chỉnh sửa cuối:
Nếu bạn biết dùng Advanced Filter rồi thì học cách Record Macro sẽ được code và học cách thiết lập chế độ sử dụng Macro sẽ chẳng có gì khó cả.
Bạn nên tập làm quen dần với VBA đi, bạn sẽ thấy được hiệu quả của nó, ví dụ:
- In phiếu thu tiền của học sinh hàng loạt.
- In phiếu nợ tiền của học sinh.
....v....v...........
Advanced Filter, Macro mình dùng được, nhưng hay bị lỗi. Do mới chuyển công tác, nên cần gấp để hoàn thành công việc. Hơn nữa mình cần xây dụng bảng tính để dùng chung cho một số người, nên xài Advanced Filter, Macro sẽ không phù hợp.
Bài đã được tự động gộp:

Dùng pivot table nhanh và tiện
Bác có thể nói cụ thể hơp không ạ!
 
Lần chỉnh sửa cuối:
cy hỗ trợ lọc danh sách không dúng filter

Cái tiêu đề có tới 3 lỗi chính tả. Trong bài viết đầu câu hay sau dấu chấm câu => không viết hoa, lúc thì viết hoa toàn bộ câu.

Vui lòng kiểm tra chính tả trước khi đăng bài.
 
Advanced Filter, Macro mình dùng được, nhưng hay bị lỗi. Do mới chuyển công tác, nên cần gấp để hoàn thành công việc. Hơn nữa mình cần xây dụng bảng tính để dùng chung cho một số người, nên xài Advanced Filter, Macro sẽ không phù hợp.
Bài đã được tự động gộp:


Bác có thể nói cụ thể hơp không ạ!
 

File đính kèm

Vẫn bảng tính cũ. Song em muốn lọc theo ba điều kiện thì có được không ạ.
VD: lọc danh sách học sinh lớp 10A1, đã đóng khoản thu A1 vào tháng 6.
Xin chỉ các bác giúp đỡ!
Bài đã được tự động gộp:

Trưa nay em mới xem trên youtube về pivot table, nhưng chưa hiểu lắm. Dang làm thử mà chưa ra.
 

File đính kèm

Công thức trong file có lẽ dài, nhưng nếu b đưa mã số học sinh( giá trị duy nhất, tránh việc các học sinh trùng tên) để làm giá trị dò tìm thì sẽ nhanh hơn và dễ hơn,
 

File đính kèm

Vẫn bảng tính cũ. Song em muốn lọc theo ba điều kiện thì có được không ạ.
VD: lọc danh sách học sinh lớp 10A1, đã đóng khoản thu A1 vào tháng 6.
- Dùng VBA thì được. Bạn có chịu không?
- Tìm không thấy lớp 10A1.
- Chỉ có 7 loại thu từ A1 đến A7 hay còn nhiều mục thu nữa?
 
- Dùng VBA thì được. Bạn có chịu không?
- Tìm không thấy lớp 10A1.
- Chỉ có 7 loại thu từ A1 đến A7 hay còn nhiều mục thu nữa?
Xin file của bác để tham khảo ạ
Bài đã được tự động gộp:

Công thức trong file có lẽ dài, nhưng nếu b đưa mã số học sinh( giá trị duy nhất, tránh việc các học sinh trùng tên) để làm giá trị dò tìm thì sẽ nhanh hơn và dễ hơn,
Dạ! Cám ơn bác. Test thử thì thấy file của bác quá hay, quá vừa ý luôn ạ.
Em nghiên cứu công thức xem sao. Rồi tiếp tục nhờ bác trích lọc theo mã học sinh.
Vạn lời cảm ơn bác!
 
Xin file của bác để tham khảo ạ
Bài đã được tự động gộp:


Dạ! Cám ơn bác. Test thử thì thấy file của bác quá hay, quá vừa ý luôn ạ.
Em nghiên cứu công thức xem sao. Rồi tiếp tục nhờ bác trích lọc theo mã học sinh.
Vạn lời cảm ơn bác!
Thực ra cách của mình sẽ chính xác nếu tên hs không trùng nhau, còn có hs giống tên nhau và cùng 1 lớp thì mình cũng chưa thử
 
Nhờ các bác giúp em thên nhát nữa.
1./ Sao công thức này em chỉnh lại số ô mà nó không chạy
Công thức cũ:
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1592=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1592),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")
Sử lại là"
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1800=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1800),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")

2./ Giúp em thêm một bảng lọc theo thời gian: Tức là lọc những em học sinhcủa lớp đóng tiền các khoản trong thời gian từ tháng x đến tháng y ( có thể thay đổi thời gian)
Bài đã được tự động gộp:

Thực ra cách của mình sẽ chính xác nếu tên hs không trùng nhau, còn có hs giống tên nhau và cùng 1 lớp thì mình cũng chưa thử
Dạ, tên học sinh nếu trùng sẽ sửa hoặc thêm ký tự A, B .. nên cũng không vấn đề gì.
 

File đính kèm

Nhờ các bác giúp em thên nhát nữa.
1./ Sao công thức này em chỉnh lại số ô mà nó không chạy
Công thức cũ:
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1592=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1592),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")
Sử lại là"
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1800=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1800),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")

2./ Giúp em thêm một bảng lọc theo thời gian: Tức là lọc những em học sinhcủa lớp đóng tiền các khoản trong thời gian từ tháng x đến tháng y ( có thể thay đổi thời gian)
Bài đã được tự động gộp:


Dạ, tên học sinh nếu trùng sẽ sửa hoặc thêm ký tự A, B .. nên cũng không vấn đề gì.
Dữ liệu phải sort theo lớp, trùng tên không sao
 

File đính kèm

. . . . . Dạ, tên học sinh nếu trùng sẽ sửa hoặc thêm ký tự A, B .. nên cũng không vấn đề gì.
:D . . . . /-)úng là chưa thấy quan tài chưa đỗ lệ!
$$$$@

Chủ bài đăng có danh sách học sinh /HViên toàn trường mà không có mã HS thì chả mấy chốc thành đống rác thúi mà thôi!

STTKHỐILỚPMã HSHỌ TÊNNGÀY SINHGIỚI TÍNH
1​
1010A1.2ATN00Anh Thị Tuyết Ngân29/02/2004Nữ
2​
1111A2BTT00Bàn Thị Thuỷ01/08/2003Nữ
3​
1010D3BAT00Bùi Anh Tùng13/01/2004Nam
4​
1010D3BBP00Bùi Bích Phương20/08/2004Nữ
5​
1010D3BNT00Bùi Đại Nhật Tân17/09/2004Nam
6​
1010TN4BMD00Bùi Đoàn Mỹ Duyên03/09/2004Nữ
7​
1010D2BFA010Bùi Đức Anh22/07/2004Nam
8​
1212A1.2BFL00Bùi Đức Lợi13/08/2002Nam
9​
1111A1.5BHH00Bùi Hoàng Hiệp23/05/2003Nam
10​
1111D3BHH00Bùi Hồng Hạnh10/07/2003Nữ
11​
1010TN3BHH01Bùi Huy Hoàng08/01/2004Nam
 
Lần chỉnh sửa cuối:
:D . . . . /-)úng là chưa thấy quan tài chưa đỗ lệ!
$$$$@

Chủ bài đăng có danh sách học sinh /HViên toàn trường mà không có mã HS thì chả mấy chốc thành đống rác thúi mà thôi!

STTKHỐILỚPMã HSHỌ TÊNNGÀY SINHGIỚI TÍNH
1​
1010A1.2ATN00Anh Thị Tuyết Ngân29/02/2004Nữ
2​
1111A2BTT00Bàn Thị Thuỷ01/08/2003Nữ
3​
1010D3BAT00Bùi Anh Tùng13/01/2004Nam
4​
1010D3BBP00Bùi Bích Phương20/08/2004Nữ
5​
1010D3BNT00Bùi Đại Nhật Tân17/09/2004Nam
6​
1010TN4BMD00Bùi Đoàn Mỹ Duyên03/09/2004Nữ
7​
1010D2BFA010Bùi Đức Anh22/07/2004Nam
8​
1212A1.2BFL00Bùi Đức Lợi13/08/2002Nam
9​
1111A1.5BHH00Bùi Hoàng Hiệp23/05/2003Nam
10​
1111D3BHH00Bùi Hồng Hạnh10/07/2003Nữ
11​
1010TN3BHH01Bùi Huy Hoàng08/01/2004Nam
Cảm ơn bác SA_DQ góp ý. tham gia diễn đàn từ lâu mà chưa được tương tác với bác. Danh sách là do Văn thư chuyển qua đã lọc và mã hóa tên trùng rồi ạ. Mình chỉ nhập vào sheet TT.
 
Nhờ các bác giúp em thên nhát nữa.
1./ Sao công thức này em chỉnh lại số ô mà nó không chạy
Công thức cũ:
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1592=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1592),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")
Sử lại là"
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1800=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1800),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")

2./ Giúp em thêm một bảng lọc theo thời gian: Tức là lọc những em học sinhcủa lớp đóng tiền các khoản trong thời gian từ tháng x đến tháng y ( có thể thay đổi thời gian)
Bài đã được tự động gộp:


Dạ, tên học sinh nếu trùng sẽ sửa hoặc thêm ký tự A, B .. nên cũng không vấn đề gì.
chỗ define nam "tien" bạn sửa lại phần chọn nếu thêm dòng vào
Bài đã được tự động gộp:

chỗ define nam "tien" bạn sửa lại phần chọn kích thước nếu thêm dòng vào
Mã:
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1800=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1800),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")
nhấn ctrl + shilf + enter
 
Lần chỉnh sửa cuối:
chỗ define nam "tien" bạn sửa lại phần chọn nếu thêm dòng vào
Bài đã được tự động gộp:


Mã:
=IFNA(INDEX(tien,MATCH(1,(TT!$D$7:$D$1800=$B8)*(OFFSET(TT!$J$7,0,MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0),ROWS(TT!$D$7:$D$1800),1)=' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$H$5),0),MATCH(' LỚP KHOẢN THU VÀ THỜI GIAN NỘP'!$F$7,TT!$J$6:$W$6,0)),"")
nhấn ctrl + shilf + enter
Đã làm được. cảm ơn bạn. Học được define name là gì
 
define name để đặt tên vùng chọn cho tiện thôi
Em làm thên hai sheet. Bác giúp em thêm ca nữa.
1./ Lọc số tiền của tất cả học sinh trong một khối theo tháng. Giồng như trong mỗi lớp.
2./ Tổng tiền từng khoản của từng lớp theo tháng.
 

File đính kèm

Mình nghĩ bạn nên tự thêm cột phụ đánh mã học sinh vào các sheet để tham chiếu thì công thức sẽ nhanh và gọn, không sai. Sau khi tính toán xong thì ẩn nó đi
 
Do trong quá trình sử dụng bảng thu mà bác phuongvq123 giúp đỡ xây dựng xuất hiện vấn đề: Một học sinh có thể đóng 1, 2 hoặc 3 lần cho từng khoản thu. Nên em xây dựng bảng lại như sau.
- Lọc theo mã số học sinh (công thức đặt mã số nhờ các bác góp ý).
- Các bảng sau đó lọc theo mã số từ sheet data.
- Sheet lọc sẽ dò tìm từng khoản trong 3 lần thu từ tháng x đến tháng y.
Nhờ các bác giúp em với ạ.
 

File đính kèm

Do trong quá trình sử dụng bảng thu mà bác phuongvq123 giúp đỡ xây dựng xuất hiện vấn đề: Một học sinh có thể đóng 1, 2 hoặc 3 lần cho từng khoản thu. Nên em xây dựng bảng lại như sau.
- Lọc theo mã số học sinh (công thức đặt mã số nhờ các bác góp ý).
- Các bảng sau đó lọc theo mã số từ sheet data.
- Sheet lọc sẽ dò tìm từng khoản trong 3 lần thu từ tháng x đến tháng y.
Nhờ các bác giúp em với ạ.
Mã số học sinh tôi có ý kiến như này ví dụ: năm học 2019-2020 là khóa thứ 50 của trường đối với lớp 10TN1 học sinh có STT trong lớp đó là 1 thì mã là 50-TN1-01. học lớp 11D2 có STT là 1 thì khóa là 49, mã là 49-D2-02
Bạn thấy thế nào
 
Mã số học sinh tôi có ý kiến như này ví dụ: năm học 2019-2020 là khóa thứ 50 của trường đối với lớp 10TN1 học sinh có STT trong lớp đó là 1 thì mã là 50-TN1-01. học lớp 11D2 có STT là 1 thì khóa là 49, mã là 49-D2-02
Bạn thấy thế nào
Mã không quan trọng, chủ yếu dùng nhận biết học sinh thôi ạ. Bác giúp em công thức được thì tuyệt quá rồi. Bác lập mã theo ý bác cũng được.
 
Do trong quá trình sử dụng bảng thu mà bác phuongvq123 giúp đỡ xây dựng xuất hiện vấn đề: Một học sinh có thể đóng 1, 2 hoặc 3 lần cho từng khoản thu. Nên em xây dựng bảng lại như sau.
- Lọc theo mã số học sinh (công thức đặt mã số nhờ các bác góp ý).
- Các bảng sau đó lọc theo mã số từ sheet data.
- Sheet lọc sẽ dò tìm từng khoản trong 3 lần thu từ tháng x đến tháng y.
Nhờ các bác giúp em với ạ.
Bạn tham khảo
 

File đính kèm

Bác hiểu sai ý em rồi. các bảng lọc sẽ lọc cả ba lần cho một cột ạ.
Tức là nếu
Học sinh A đóng Học phí 100k trong tháng 1, 300k trong tháng 4, 500k trong tháng 7.
Học sinh B đóng Học phí 200k trong tháng 2, 300k trong tháng 3, 300k trong tháng 4.
Nhưng khi lọc em muốn bảng lọc từ tháng 2 đến tháng 4 thì bảng hiển thị học phí sẽ là
A : 300K ( chỉ có lần đóng thứ 2 đủ điều kiện)
B : 800K ( Do có 3 lần đủ điều kiện, thì sẽ cộng tiền 3 đủ điều kiện.)
 
Mình tính giải pháp như thế này. Nhưng thấy nặng file và phức tạp quá.
Thêm 3 sheet cho 3 lần thu. Sheet cuối sẽ tổng lại.
Xin ý kiến các bác!
 

File đính kèm

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

Back
Top Bottom