Nhờ mọi người viết code VBA cho hàm sumifs : WorksheetFunction.SumIfs

Liên hệ QC

quochung1012

Thành viên mới
Tham gia
5/5/07
Bài viết
9
Được thích
0
Xin chào mọi người !
Mọi người ai giúp mình viết chuyển hàm sumifs về dạng code VBA cho để nhẹ file và cải thiện tốc độ với
File công việc của mình tổng lên tới vài trăm nghìn hàm sumifs nên dung lượng cao và loading chậm
Các bạn viết code giúp mình để giá trị từ J2:L17 trả về đúng giá trị như hàm sumifs hiện tại mình đang dùng với nhé
Xin chân thành cảm ơn các bạn trước !
 

File đính kèm

  • Viet-ham-sumifs-trong-VBA.xlsm
    23.9 KB · Đọc: 18
Trong khi chờ code VBA, bạn thử tối ưu công thức xem sao, đừng dùng Match và Index nữa, chỉ cần SUMIF là đủ, công thức ghi tại J2, sau đó copy down (Ctrl+D), và copy right (Ctrl+R) là được.

=$I2*SUMIF($A$2:$A$600000,$G2,B$2)

Test thử với 600,000 dòng.
 
Upvote 0
Xin chào mọi người !
Mọi người ai giúp mình viết chuyển hàm sumifs về dạng code VBA cho để nhẹ file và cải thiện tốc độ với
File công việc của mình tổng lên tới vài trăm nghìn hàm sumifs nên dung lượng cao và loading chậm
Các bạn viết code giúp mình để giá trị từ J2:L17 trả về đúng giá trị như hàm sumifs hiện tại mình đang dùng với nhé
Xin chân thành cảm ơn các bạn trước !
Bạn bấm nút Chạy code và kiểm tra lại kết quả!
 

File đính kèm

  • Viet-ham-sumifs-trong-VBA_quochung1012.xlsm
    29.4 KB · Đọc: 22
Upvote 0
Số lượng cỡ trăm nghìn thì học cách xài Power Query.
Mọi nổ lực khác, dùng code VBA tối ưu, hay dùng ADODDB đều là cách chữa cháy tạm thời của dân chỉ biết xài hàng cũ mà không chịu theo bước tiến mới.
 
Upvote 0
Trong khi chờ code VBA, bạn thử tối ưu công thức xem sao, đừng dùng Match và Index nữa, chỉ cần SUMIF là đủ, công thức ghi tại J2, sau đó copy down (Ctrl+D), và copy right (Ctrl+R) là được.



Test thử với 600,000 dòng.
Cảm ơn bạn nhé ! cho mình hỏi SUMIF($A$2:$A$600000,$G2,B$2) và SUMIFS(B2:B600000,$A$2:$A$600000,$G2)
hàm sumif của bạn vùng tính tổng để B$2 như này mình chưa làm bao giờ, nhanh hơn để hết cả vùng B2:B600000 ko bạn (để mai mình làm thử trên file của mình)
Mình dùng hàm index, match vì mình có các cột cách nhau, nên mình dùng tìm cả ĐK cột, đây là ví dụ mình để gần nhau thôi.
 
Upvote 0
Cảm ơn bạn, mình đã chạy được code nhưng có thể tìm theo cả đk cột như công thức index, match như trong công thức của mình không bạn nhỉ !?
Bạn cứ thử với dữ liệu thật của bạn. Xem ghi chú trong code để tùy biến địa chỉ vùng dữ liệu.

Tuy nhiên, nếu cấu trúc dữ liệu bạn đưa lên đây không giống như thật thì code không hoạt động đúng.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn bạn, mình đã chạy được code nhưng có thể tìm theo cả đk cột như công thức index, match như trong công thức của mình không bạn nhỉ !?
Đã sửa lại để tìm và cộng theo đúng cột tên tháng chứ không chạy tuần tự theo vòng lặp nữa.
 

File đính kèm

  • Viet-ham-sumifs-trong-VBA_quochung1012.xlsm
    30.7 KB · Đọc: 33
Upvote 0
Web KT

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

Back
Top Bottom