tedaynui đã viết:
Hi hi, ai mà chạy đua tốc độ với anh thì chỉ có chết thôi. Như anh đã nói tùy dữ liệu thì làm sao lường hết mọi tình huống, đúng không anh ? File mẫu của anh rất hay, chạy nhanh chỉ với 3-4 chục dòng công thức vì trích xuất theo ngày trong tháng. Chứ trích xuất theo mặt hàng hay đại lọai là gì đó mà lên cả ngàn dòng thì công thức liệu có kham nổi không anh (về dung lượng lẫn tốc độ), hi hi. Thật ra, em thấy đúng như anh nói Cuối cùng thì cũng lại là câu "Tùy dữ liệu" (Nhưng cái này là suy nghĩ riêng em thôi nha : thông thường với khối dữ liệu lớn HIẾM KHI may mắn gặp trường hợp dùng công thức hiệu quả)
Em cũng xin gởi 1 file dựa trên Data của anh nhưng không dám đua tốc độ đâu à nha, chỉ nhằm mục đích thực hiện theo mục đích của Trailangque. Tham khảo cho vui, chứ VBA này cũng ì ạch lắm, he he
Thân
TDN
Việc nhanh hay chậm là tùy thuộc vào toàn bộ hệ thống cơ sở dữ liệu đó, bao gồm cả việc nhập liệu, chứ không chỉ là lúc tính toán.
Việc dùng name cũng nhanh, dùng VBA cũng nhanh và thậm chí dùng công thức thô cũng nhanh. Dùng công thức thô thì như người đi bộ, dùng name thì như người đi xe đạp, và dùng VBA thì như người đi xe máy.
Như vậy vấn đề nhanh hay chậm, chở được nhiều hàng hay không thì trở nên đơn giản rồi.
Trong những điều kiện cụ thể thì khó có thể nói là cái nào nhanh hơn, bởi phải biết xét về tổng thể : Điểm đi là đâu, điểm đến là đâu ?? Phạm vi áp dụng.
Ví dụ chỉ đơn thuần A3=A1+A2 hay là một cái gì đó tương tự thì không có cái gì nhanh bằng công thức thô rồi.
Làm name cũng nhanh, khi mà lợi dụng sự sắp xếp của dữ liệu để chia nhỏ ra, tuy nhiên nó có điểm yếu là sự tùy biến không cao, không phải dữ liệu nào cũng được (phép) sắp xếp, và khi cần sử dụng tổng hợp từ nhiều yếu tố, từ nhiều sheet thì dùng name rất nặng nề, thậm chí là không thể.
Còn nhưng việc đơn giản mà dùng VBA thì đúng là chậm hơn rồi, việc giết chim sẻ mà lại phải đi tìm súng, trong khi đó chỉ cần 1 con dao nhỏ là được rồi. Thời gian đi tìm súng, nạp đạn, lên nòng . . đã làm mất rất nhiều thời gian rồi.
Vì vậy các bác cứ cho là dùng VBA nhanh hơn hay name nhanh hơn thì hoàn toàn mất thời gian.
Quan trọng là giải quyết được bài toán và người ta học được cái gì ở đó thôi.
Cũng giống như khi lập trình thì mấy dòng code không có gì đáng kể, cái học được là khả năng giải thuật của người khác thôi.
Thân!