nhatrangsea
Thành viên mới

- Tham gia
- 10/12/11
- Bài viết
- 3
- Được thích
- 1
Chào các bạn, lần đầu tiên post bài nên nếu có gì không phải mong các bạn bỏ qua. Mình đang vướng ở phần tính toán mảng 2 chiều từ dữ liệu của mảng khác, số liệu của mảng quá lớn nên tính rất chậm, mình đang tìm cách rút gọn lại để tính nhanh hơn nhưng chưa nghĩ ra. Mình có gửi file dữ liệu đính kèm.
Lưu ý : File đính kèm chỉ mình chỉ rút gọn trong 1 tháng mẫu, file gốc bao gồm cả 12 tháng nên rất lớn.
Yêu cầu công việc : Tính tổng từng loại vật tư trong Sheet "XUAT KHO" tương ứng với từng ngày trong tháng và đưa vào vị trí tương ứng trong Sheet "TONG HOP"
Phương án giải quyết :
1. Dùng hàm SUMIFS của Excel để tính trực tiếp trên từng cell -> kết quả : tính trong 1 tháng thì tạm ổn, tính toàn bộ cho 24 tháng máy tính "ngu luôn" ==> không khả thi.
2. Dùng VBA.
2a. Đọc toàn bộ chủng loại vật tư trong Sheet "TONG HOP" đưa vào mảng TH.
2b. Đọc toàn bộ chủng loại vật tư trong Sheet "XUAT KHO" đưa vào mảng DATA.
2c. Dùng vòng lặp FOR để so sánh dữ liệu trong mảng DATA với TH, nếu trùng cả tên vật tư & ngày thì cộng dồn số liệu và đưa vào vị trí tương ứng trong mảng TH
- Sau khi tính toán xong thì ghi lại toàn bộ giá trị của mảng TH vào Sheet "TONG HOP" theo vị trí tương ứng.
Kết quả : tốc độ xử lý có nhanh hơn phương án 1 nhưng cũng vẫn chậm
Mình nghĩ phương án dùng vỏng FOR ở phần 2C có lẽ chưa tối ưu nên đang tìm cách giải quyết mà chưa ra. Mong các bạn giúp đỡ. Xin cảm ơn.
Lưu ý : File đính kèm chỉ mình chỉ rút gọn trong 1 tháng mẫu, file gốc bao gồm cả 12 tháng nên rất lớn.
Yêu cầu công việc : Tính tổng từng loại vật tư trong Sheet "XUAT KHO" tương ứng với từng ngày trong tháng và đưa vào vị trí tương ứng trong Sheet "TONG HOP"
Phương án giải quyết :
1. Dùng hàm SUMIFS của Excel để tính trực tiếp trên từng cell -> kết quả : tính trong 1 tháng thì tạm ổn, tính toàn bộ cho 24 tháng máy tính "ngu luôn" ==> không khả thi.
2. Dùng VBA.
2a. Đọc toàn bộ chủng loại vật tư trong Sheet "TONG HOP" đưa vào mảng TH.
2b. Đọc toàn bộ chủng loại vật tư trong Sheet "XUAT KHO" đưa vào mảng DATA.
2c. Dùng vòng lặp FOR để so sánh dữ liệu trong mảng DATA với TH, nếu trùng cả tên vật tư & ngày thì cộng dồn số liệu và đưa vào vị trí tương ứng trong mảng TH
- Sau khi tính toán xong thì ghi lại toàn bộ giá trị của mảng TH vào Sheet "TONG HOP" theo vị trí tương ứng.
Kết quả : tốc độ xử lý có nhanh hơn phương án 1 nhưng cũng vẫn chậm
Mình nghĩ phương án dùng vỏng FOR ở phần 2C có lẽ chưa tối ưu nên đang tìm cách giải quyết mà chưa ra. Mong các bạn giúp đỡ. Xin cảm ơn.

, chắc phải xem lại coi thế nào 