Hỏi: Lọc dữ liệu theo 3 tiêu chí, sau đó chuyển dữ liệu đã lọc sang sheet khác!

Liên hệ QC

icqseabridge

Thành viên mới
Tham gia
8/10/08
Bài viết
8
Được thích
0
Lọc dữ liệu theo 3 tiêu chí, sau đó chuyển dữ liệu đã lọc sang sheet khác!

Kính thưa các cao thủ Excel và VBA,

Sau khi đọc rất nhiều các thởt (thread) của các bác, em vẫn chưa tìm ra cách để xử lý tình huống rất phức tạp này của em.

Chả là em có 1 file thống kê Database về tình hình cho vay vốn tại một tỉnh. File này được lập trên rất nhiều tiêu chí, mỗi tiêu chí là một cột, trong đó có 3 cột quan trọng là:
- Diện hỗ trợ cho vay (Nghèo-N, Cận nghèo-CN, Bình thường-BT) - tại cột 22 của sheet "Data";
- Tháng của Hợp đồng vay - tại cột 4 của sheet "Data" và;
- Huyện của cơ sở kinh doanh - tại cột 19 của sheet "Data".

Giờ ông chính quyền muốn biết tình hình cho vay vốn của DN em theo 3 tiêu chí trên. Ổng đưa ra một form báo cáo có các cột theo thứ tự hoàn toàn khác với thống kê của bên em.

DN em không thể thay đổi được mẫu biểu thống kê vì đã xử lý trên toàn hệ thống như vậy rồi. Và cũng không thể yêu cầu được ông chính quyền thay đổi form của họ.

Nếu tụi em lọc, copy và paste thì rất mất thời gian và có thể có sự nhầm lẫn.

Do vậy, em đã cố gắng tìm phương án sử dụng VBA để đưa ra một phương án lọc và xuất dữ liệu giữa 2 biểu này (thống kê của bên em và mẫu báo cáo của Ông Chính Quyền).

Tuy nhiên, do khả năng hạn hẹp và rất ít kinh nghiệm về VBA, em xin nhờ các cao thủ của GPE giúp đỡ để có thể xử lý được yêu cầu này của bác Main Street.

Em đã thực hiện một số bước ban đầu như sau:

1. Em đã đưa 2 biểu vào 1 file excel 97-2003 để dễ xử lý dữ liệu. Sheet “Data” là dữ liệu của Cty em. Sheet “Report” là form chuẩn của ông Chính Quyền.
2. Tại “Data”, em tạo 2 nút để lọc VBA theo tháng và theo huyện;
3. Tại “Report”, em tạo 3 nút tương ứng với 3 tiêu chí của Diện hỗ trợ (N, CN, BT), nhằm để lọc và để copy/paste dữ liệu luôn.

Thao tác dự kiến sẽ là:

1. Người dùng sẽ click lọc tại “Data” trước theo 2 nút có sẵn;

2. Người dùng chuyển quan “Report”, muốn chuyển dữ liệu theo tiêu chí N thì click vào nút “N”, dữ liệu bên “Data” sẽ lọc theo tiêu chí này và trích xuất dữ liệu sang “Report” theo đúng cách sắp xếp của “Report”;

3. Tương tự với các tiêu chí CN và BT.

Vấn đề đặt ra là làm như vậy rất khó vì mỗi lần click nút:
- phải xóa các dòng đang tồn tại sau mỗi phần I, II, III của “Report”.
- phải thêm số dòng bằng chính số dòng sau khi lọc theo 3 tiêu chí.
- phải copy dữ liệu và sắp xếp lại theo thứ tự khác với thứ tự của “Data”.

Quá phức tạp nên em thực sự rất cần các cao thủ của GPE hỗ trợ. Em xin ngàn lần cảm tạ ạ!

Em xin đính kèm file mẫu tại đây. Kính mong các cao thủ dành thời gian giúp đỡ.
 

File đính kèm

  • LocDuLieuvaBaocao.xls
    62.5 KB · Đọc: 21
Cũng có thể dùng AdvancedFilter, nhưng bạn fải thay cấu trúc trang của bạn đi xíu:

Để lọc được, ta cần có tên trường & nhất thiết các tên trường không trùng nhau;
Tất nhiên những trường không cần lọc ta có thể gán tên là "Cxx", ở đây xx là chỉ số cột của trường đó;

Muốn vậy, tại trang 'Data' của bạn, ta thêm dòng trống vô dòng "8:8"

Và gán tên trường như đã nói trên tại dòng này;

(Nhưng mình cần hỏi lại bạn, các trường sau cột "L:L" của 'Report' llấy số liệu từ trường cụ thể nào ở 'Data'.)

Chuyện này bạn tự làm & đưa lại file mới lên để có thể xài macro cho công việc tiếp theo sau được.

Xin chào đồng hương!
 
Upvote 0
Cảm ơn bác ChanhTQ@

Em sẽ xử lý file của em theo cách của bác rồi sáng mai sẽ gửi bác. Em dự kiến viết luôn macro cho 2 nút lọc ở sheet "Data" này luôn để bác xem và góp ý. Còn nút lọc + chuyển dữ liệu ở sheet "Report" sẽ chờ cao kiến của bác!

Chúc bác giấc ngủ ngon đêm nay!
 
Upvote 0
@Bác ChanhTQ@,

Em đã bổ sung tiêu đề cột tại Sheet “Data” theo ý bác. Em xin đính kèm theo đây.

Về tương quan của các cột giữa 2 sheets, em xin giải thích như sau:

Sheet “Report” - Sheet “Data”

- Cột B:B - Cột L:L
- Cột C:C - Cột B:B
- Cột D:D - Cột J:J
- Cột E:E - Cột W:W
- Cột F:F - Cột AD:AD
- Cột G:G - Cột AE:AE
- Cột H:H - Cột AF:AF
- Cột I:I - Cột AH:AH
- Cột J:J - Cột AG:AG
- Cột K:K - Cột AI:AI
- Cột L:L - Cột AJ:AJ
- Cột M:M - Cột AK:AK
- Cột N:N - Để trống
- Cột O:O - Cột AL:AL
- Cột P:p - Cột AM:AM
- Cột Q:Q - Cột AN:AN
- Cột R:R - Tổ hợp lệnh Date của các cột (AB,AA,Z)

Kính nhờ bác ChanhTQ@ và các bác xem xét chỉ giáo giúp em vụ này!
 

File đính kèm

  • LocDuLieuvaBaocao.xls
    79 KB · Đọc: 12
Lần chỉnh sửa cuối:
Upvote 0
Giải thích thêm gửi bác ChanhTQ@,

Sau khi đọc reply của bác, thấy bác nói là xử lý tên trường, còn phần macro thì để lại tính tiếp, nên em không viết macro cho 2 nút ở sheet "Data" nữa.

Ngoài ra, em xin bổ sung số cột cho các cột tương ứng ở sheet "Data" như sau:

- Cột B:B - Cột L:L (cột 12)
- Cột C:C - Cột B:B (cột 2)
- Cột D:D - Cột J:J (cột 10)
- Cột E:E - Cột W:W (cột 23)
- Cột F:F - Cột AD:AD (cột 30)
- Cột G:G - Cột AE:AE (cột 31)
- Cột H:H - Cột AF:AF (cột 32)
- Cột I:I - Cột AH:AH (cột 34)
- Cột J:J - Cột AG:AG (cột 33)
- Cột K:K - Cột AI:AI (cột 35)
- Cột L:L - Cột AJ:AJ (cột 36)
- Cột M:M - Cột AK:AK (cột 37)
- Cột N:N - Để trống
- Cột O:O - Cột AL:AL (cột 38)
- Cột P:p - Cột AM:AM (cột 39)
- Cột Q:Q - Cột AN:AN (cột 40)
- Cột R:R - Tổ hợp của các cột (Z,AA,AB) (cột 26,27,28)

Mong bác tận tỉnh giúp đỡ!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom