Tổng hợp thông tin từ sheet chi tiết sang sheet khác

Liên hệ QC

mobile7

Thành viên mới
Tham gia
3/7/12
Bài viết
27
Được thích
0
Em có một file bán hàng như đính kèm, gồm nhiều trường thông tin tại sheet 1
Em muốn tổng hợp thông tin sang sheet 2, điều kiện là tuỳ chọn theo dõi theo mã Chi nhánh, tuỳ chọn thời gian theo dõi (luỹ kế theo tháng hoặc từ đầu năm), số liệu chạy ra là số chi tiết theo từng khách hàng.
Dữ liệu em có rất nhiều, gồm >100k dòng nên em muốn các bác cho cao kiến cách nào tốt nhất (vba hay hàm), tức chạy nhanh nhất.
Cám ơn các bác
 

File đính kèm

  • Workbook3.xlsx
    34.4 KB · Đọc: 10
Với những gì bạn chuẩn bị trong file thì:
Chưa fải là nhanh nhất có thể, nhưng chắc cũng đáp ứng cho bạn;
 

File đính kèm

  • GPE.rar
    21.7 KB · Đọc: 35
Tức là em dùng code VBA trong file của bác để thực hiện cho file của em đúng k ạ? Em đang thử. Cám ơn bác.
Cho em hỏi chút. Tại sheet 1 làm thế nào để ra cái bảng thống kê bên phải của bác?
 
Lần chỉnh sửa cuối:
(1) Tức là em dùng code VBA trong file của bác để thực hiện cho file của em đúng k ạ?
(2) Tại sheet 1 làm thế nào để ra cái bảng thống kê bên phải của bác?
(1) Chú í tên các trang tính, cần đổi theo
(2) Lọc 3 trường đầu của CSDL theo từng chi nhánh; Rồi sau đó chép sang thôi;
Còn Danh sách toàn bộ khách hàng thì xài fương án xóa trùng cho 2 cột [B:C] của CSDL

Chúc vui vẻ & thành công!
 
Em đang muốn cải tiến theo hướng hoàn toàn tự động, tức là phần bên phải của sheet 1 cũng sẽ làm tự động thay vì thủ công, vì mỗi tháng em sẽ dán thêm dữ liệu xuống các dòng dưới bên trái. Có cách nào k ạ?

Với lại nếu sau này có thêm CN mới, KH mới thì code còn chạy được k ạ?
 
Lần chỉnh sửa cuối:
Em đang muốn cải tiến theo hướng hoàn toàn tự động, tức là phần bên phải của sheet 1 cũng sẽ làm tự động thay vì thủ công, vì mỗi tháng em sẽ dán thêm dữ liệu xuống các dòng dưới bên trái. Có cách nào k ạ?

Với lại nếu sau này có thêm CN mới, KH mới thì code còn chạy được k ạ?

Được sất, nếu bạn xài macro cho E2007 trở lên thì hay hơn; Nhưng fải sửa lại thiết kế xíu. Như dữ liệu danh mục mã KH & tên KH chuyển đến trước; tại cột [AA:AB] chẳng hạn; Như vậy các dữ liệu hiện ở cột [AA] sẽ đẩy đến cột [AC]; [Ac] => [AE],. . . . =>
Làm được như vậy, sau này fát triển thêm 200 chi nhánh nữa cũng không sao;

Bước kế tiếp: Bạn thử lập danh mục duy nhất danh sách KH cho thiệt nhuyễn & mở bộ thu macro lên làm tự ên xem sao;

Hi vọng bạn sẽ thành công trong chuyện như vậy.
 
Lần chỉnh sửa cuối:
Done! Tks bác Chanh
 
Lần chỉnh sửa cuối:
Bạn fải chờ người khác rồi: Mình không có kinh nghiệm chuyển dữ liệu từ file này sang file khác đâu!
 
Done! Tks bác Chanh
 
Lần chỉnh sửa cuối:
Em có một file bán hàng như đính kèm, gồm nhiều trường thông tin tại sheet 1
Em muốn tổng hợp thông tin sang sheet 2, điều kiện là tuỳ chọn theo dõi theo mã Chi nhánh, tuỳ chọn thời gian theo dõi (luỹ kế theo tháng hoặc từ đầu năm), số liệu chạy ra là số chi tiết theo từng khách hàng.
Dữ liệu em có rất nhiều, gồm >100k dòng nên em muốn các bác cho cao kiến cách nào tốt nhất (vba hay hàm), tức chạy nhanh nhất.
Cám ơn các bác
Giải nén file chung thư mục với các file khác và chạy thử code
 

File đính kèm

  • 1 Thong ke KH dinh ky.rar
    237.7 KB · Đọc: 36
Lạ quá, vẫn ra lỗi nhưng lần này là lỗi Subcript out of range dòng 35
 
Lần chỉnh sửa cuối:
Em gửi ạ. Nếu giữ nguyên file của bác thì nó báo lỗi 457, nếu copy code sang sheet Thong ke thì nó báo lỗi 9 Subcipt out of range
 

File đính kèm

  • Doc1.docx
    435.8 KB · Đọc: 2
Em gửi ạ. Nếu giữ nguyên file của bác thì nó báo lỗi 457, nếu copy code sang sheet Thong ke thì nó báo lỗi 9 Subcipt out of range
Hình thứ nhất không thấy dòng lỗi màu vàng nên không đoán được
Hình thứ 2 bị lỗi là do dữ liệu của bạn bị sai cơ bản: Một mã Khách hàng có nhiều tên khác nhau. Bạn có 2 lựa chọn:
- Tìm những dòng dữ liệu có mã khách hàng hoặc tên khách hàng sai chỉnh lại cho đúng
- Chỉnh lại code, chấp nhận dữ liệu sai và kết quả không đảm bảo sẽ đúng
Bạn chạy code trên các file cuối cùng gởi cho mình, sẽ thấy không bị lỗi nầy
 
Lỗi xảy ra như thế này ạ: bấm chạy nó báo hình thứ nhất, ấn debug nó chạy ra hình thứ 2 (tức là chỉ 1 lỗi chứ k phải là 2 lỗi ạ)
Còn việc bác nói thì đúng ạ. Nếu 1 mã KH có 2 tên khác nhau thì mình chấp nhận tên đầu tiên (hoặc cuối cùng), vì nhiều khi tên nó khác nhau 1 tí tẹo (sai chấm phẩy, hoặc tên có dấu, k dấu ạ). Bác chỉnh lại code cho em theo hướng đó với!

Ngoài ra còn có trường hợp 1 KH giao dịch với >1 CN nữa, nên KH nào như vậy thì khi liệt kê cần có số dòng tương ứng với số CN bác nhé. Thêm nữa, em xin phép bỏ đi cột mã CN tại file thống kê, thay vào đó nhập thông tin về mã CN phía trên (tức là nhập thông tin về CN và tháng/năm thì dữ liệu sẽ tự động chạy của CN đó ạ). Em cám ơn!
 
Lần chỉnh sửa cuối:
Ngoài ra còn có trường hợp 1 KH giao dịch với >1 CN nữa, nên KH nào như vậy thì khi liệt kê cần có số dòng tương ứng với số CN bác nhé. Thêm nữa, em xin phép bỏ đi cột mã CN tại file thống kê, thay vào đó nhập thông tin về mã CN phía trên (tức là nhập thông tin về CN và tháng/năm thì dữ liệu sẽ tự động chạy của CN đó ạ). Em cám ơn!
Hai yêu cầu nầy mâu thuẫn nhau
-Ngoài ra còn có trường hợp 1 KH giao dịch với >1 CN nữa, nên KH nào như vậy thì khi liệt kê cần có số dòng tương ứng với số CN
- bỏ đi cột mã CN tại file thống kê, thay vào đó nhập thông tin về mã CN phía trên
 
K có mâu thuẫn ạ. Tức là em chỉnh lại file Thong ke thôi. Theo hướng chọn CN để xuất danh sách KH (tức là 1 KH có thể làm với nhiều CN nhưng nếu chọn CN xuất danh sách rồi thì chỉ hiện kết quả giao dịch với CN đó thôi). Vì chọn CN trước nên bỏ cột CN (cột C) ý ạ!
Hoặc bác cứ cho em cả 2 phương án ạ. Phương án trên với phương án như cũ (vẫn xuất tất cả các CN, nếu 1 KH làm với >1 CN thì xuất số liệu giao dịch với từng CN của KH đó). Em cần cả 2 cách xuất file ạ
 
K có mâu thuẫn ạ. Tức là em chỉnh lại file Thong ke thôi. Theo hướng chọn CN để xuất danh sách KH (tức là 1 KH có thể làm với nhiều CN nhưng nếu chọn CN xuất danh sách rồi thì chỉ hiện kết quả giao dịch với CN đó thôi). Vì chọn CN trước nên bỏ cột CN (cột C) ý ạ!
Hoặc bác cứ cho em cả 2 phương án ạ. Phương án trên với phương án như cũ (vẫn xuất tất cả các CN, nếu 1 KH làm với >1 CN thì xuất số liệu giao dịch với từng CN của KH đó). Em cần cả 2 cách xuất file ạ
Xem file
 

File đính kèm

  • 1 Thong ke KH dinh ky.rar
    171.6 KB · Đọc: 24
Cám ơn bác rất nhiều.
Có xíu lỗi này khi chạy tất cả các CN, nó báo lỗi 9 chi tiết như file đính kèm ạ.
 

File đính kèm

  • Doc1.docx
    430.9 KB · Đọc: 4
Cám ơn bác rất nhiều.
Có xíu lỗi này khi chạy tất cả các CN, nó báo lỗi 9 chi tiết như file đính kèm ạ.
Công ty bạn kinh doanh gì mà hơn 1000 khách hàng vậy
Giới hạn số khách hàng là 10000, nếu nhiều hơn thì tăng thêm
ReDim Arr(1 To 10000, 1 To 20)
Mã:
Sub LayDL()
  Dim Path As String, fileNguon As String, truyVan As String, Thang, Nam, ChiNhanh, dk As String
  Dim Dic As Object, key As String, dArr As Variant, Arr As Variant, i As Long, k As Long, ik As Long
  ReDim Arr(1 To 10000, 1 To 20)
 
Web KT
Back
Top Bottom