Giúp đỡ thống kê dữ liệu theo điều kiện

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

domjnjc

Thành viên chính thức
Tham gia
7/5/12
Bài viết
90
Được thích
13
Xin chào các anh/chị trên diễn đàn!

Em có bảng dữ liệu dưới đây cần lọc ra những thông tin cần thiết. Ví dụ: với điều kiện hiển thị: A-B 18-10, em muốn khi điền các giá trị đó vào ô h2 đến k2, thì sẽ thống kê những
trường dữ liệu kế tiếp điều kiện đó, như đối với ví dụ này ta sẽ hiển thị được 2 trường dữ liệu là B-A 11-12, A-B 1-10 và B-A 9-9. Em cảm ơn!
1737530156305.png
 

File đính kèm

Bài này dùng mảng khá nhiều. Nếu không có phiên bản 365 thì chỉ có cách dùng VBA.

Giải thuật không VBA (cần Excel 365):
1. Lập một mảng với dữ liệu từ B2 đến E13
- Thêm 2 cột:
- - cột thứ nhất là B & C & D & " " & E, tạm gọi là cTam
- - cột thứ hai là cTam của dòng trên nó & "+", tạm gọi là cTamP
2. Lọc theo cTam thỏa điều kiện hoặc cTamP thỏa điềm liện & "+"
3. Lọc duy nhất
4. Chọn những cột cần thiết
5. Hết

Giải thuật với VBA:
1. Chép B2:E13 vào mảng a
2. Vòng lặp duyệt từng dòng mảng a
. 2.1. Gặp dòng thỏa điều kiện thì
. 2.1.1. Nếu là lần đầu tiên thì ghi vào mảng b, các lần khác thì không
. 2.1.2. Nếu không phải dòng cuối thì
. . 2.1.2.1. Chép dòng kế vào mảng b
. . 2.1.2.2. Tăng chỉ số dòng vòng lặp lên 1, (để nhảy qua dòng kế)
3. Dứt vòng lặp, mảng b là mảng kết quả
 
Bài này có thể dùng cột phụ để ghép dữ liệu và tìm kiếm theo mảng để trả về nhiều kết quả. Hoặc đơn giản nhất là dùng VBA. Công thức mảng trong M2: =IFERROR(INDEX($B$2:$B$13;1+SMALL(IF(($B$2:$B$13=$H$2)*($D$2:$D$13=$J$2)*($E$2:$E$13=$K$2);ROW($B$2:$B$13)-ROW($B$2)+1);ROW()-ROW($M$2)+1));""). Bạn kiểm tra lại trong file đính kèm.
 

File đính kèm

Web KT

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

Back
Top Bottom