Dùng VBA tìm dữ liệu trùng và xử lý dữ liệu (1 người xem)

Liên hệ QC

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

tuyettinh

Thành viên mới
Tham gia
14/4/08
Bài viết
2
Được thích
0
Em hiện đang phải xử lý dữ liệu về việc bán hàng cho các khách hàng theo từng mặt hàng và cụ thể theo mô tả dưới.
Sheet đầu tiên là tổng hợp.
Nó tổng hợp những dữ liệu hàng ngày vào theo từng khách hàng và từng mặt hàng.
30-06-2013 9-38-44 PM.jpg
sheet 2 là chi tiết và được cập nhật hàng ngày cũng theo từng mặt hàng và từng khách hàng.
30-06-2013 9-39-06 PM.jpg

Nhiệm vụ của em là kiểm tra theo từng khách hàng và từng mặt hàng ở Sheet chi tiết.
Nếu khách hàng và mặt hàng đã có trong danh sách thì em cộng thêm vào còn nếu khách hàng và mặt hàng chưa có trong danh sách thì em phải thêm vào trong sheet tổng hợp.
Dữ liệu của em lớn hơn cái này khoảng 1000 lần nên em cần phải tìm 1 thuật toán tối ưu mong các bác giúp.
Chứ còn theo cách làm vòng lặp và so sánh từng giá trị 1 thì em thử nhưng tốc độ quá chậm, không xử lý được.
File em muốn xử lý là file dưới.
Rất cám ơn các bác
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Để lọc dữ liệu trùng và xử lý dữ liệu bạn tham khảo 1 trong 3 cách sau ( tìm trên diễn đàn, đoc vài ví dụ thử xem) :
** Dùng ADO
** Dùng Scripting.Dictionary ,hoặc collection
** Có thể dùng Advanced Filter hoặc Remove Duplicate
p/s : Mấy cái vụ lọc này ngày xưa thấy a QuangHải hay viết code, lâu nay ko thấy a ý online trên diến đàn các bác nhỉ ?%#^#$
 
Upvote 0
Dùng PivotTable sẽ nhanh gọn lẹ:

1.1.jpg
 
Upvote 0
Dư liệu mẫu của bạn nhìn qua đã mấy chục dòng rồi. 1000 lần như thế là con số lớn.
Vì vậy giải thuật của bạn phải đặt "tối ưu" ở mức dễ kiểm soát, tức là nếu có gì trục trặc thì phải biết ngay.
Theo điều kiện này thì không nên suy tính rườm cho khổ thân. Cứ việc theo đề nghị của HLMT ở trên mà lập pivot table

Chú thích:
1 - Có cách nhanh hơn là dùng batch update. Nếu bảng tổng kết đã được sắp xếp theo thứ tự thì batch update rất nhanh. Tuy nhiên nó vẫn không dễ kiểm soát bằng Pivot Table.
2 - Không nên dùng ADO để update. Tuy dữ liệu của bạn khá đơn giản và đồng bộ, câu lệnh truy vấn SQL cũng tương đối đơn giản, nhưng chỉ nên dùng nếu bạn cần import data hay chỉnh sửa data lâu lâu một lần. Ở đây điều kiện của bạn là update thường xuyên thì nó không có lợi. Nói chung thì ADO là công cụ truy cập dữ liệu tổng quát, có thể ví như nhà máy hạt nhân, nếu bạn không nắm vững nó 100% thì sử dụng đại trà sẽ dẫn đến ngày nát bét.
 
Upvote 0

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

Back
Top Bottom