Hướng dẫn cách đo tốc độ tính toán của Excel bằng VBA

Chúng ta thường thấy Excel thực hiện các công thức chỉ trong nháy mắt với những bảng tính nhỏ, hoặc đôi khi phải chờ một lúc mới tính xong với bảng tính lớn. Vậy bạn đã bao giờ tự hỏi “nháy mắt” hay “một lúc” cụ thể là bao lâu? Việc đó thì có ảnh hưởng gì khi làm việc trong Excel? Điều đó có thực sự quan trọng? Những câu hỏi đó của bạn sẽ được giải đáp qua bài viết này. Chúng ta cùng tìm hiểu cách đo tốc độ tính toán của Excel bằng VBA ngay nào.

Cách tạo công cụ đo thời gian thực hiện công thức trong Excel

Microsoft cung cấp cho chúng ta một đoạn Code để sử dụng trong VBA giúp chúng ta đo được thời gian thực hiện công thức trong Excel là bao nhiêu milisecond. Các đoạn code đó như sau:

Đoạn code thứ 1

Trong đoạn code này bạn cần lựa chọn nội dung phù hợp theo phiên bản VBA trong máy của bạn. Cách kiểm tra là mở cửa sổ VBAvà thực hiện như sau:

  • Chọn thẻ Help
  • Trong thẻ Help chọn mục About Microsoft Visual Basic for Applications
  • Kiểm tra phiên bản VBA tại vị trí khung màu tím

Nếu phiên bản có số 7 ở trước thì copy đoạn code #1, còn các phiên bản khác thì copy đoạn code #2

Cách thêm đoạn code vào VBA:

  • Mở cửa sổ VBA
  • Thêm mới 1 module
  • Dán đoạn code tương ứng vào trong module vừa tạo

Ví dụ: với phiên bản VBA 7.1 thì sử dụng đoạn code #1

Đoạn code thứ 2:

Đoạn code này sẽ giúp chúng ta có thể sử dụng đơn vị milisecond (mili giây) để tính toán, đo đạc.

Đoạn code này chỉ sử dụng được khi chúng ta đã có đoạn code thứ 1 trong VBA.

Các bạn copy đoạn code và dán vào phía dưới đoạn code đầu tiên

Đoạn code thứ 3:

Đoạn code này khá dài phải không nào, nhưng bạn chỉ cần copy nó vào trong Module VBA là được.

Sau khi copy 3 đoạn code trên vào VBA, chúng ta quay trở lại file Excel, nhấn Alt + F8 để kiểm tra kết quả thu được:

Giao diện cửa sổ Macro

Đây là 4 Macro thu được bởi 3 đoạn code. Với các macro này chúng ta có thể sử dụng để đo lường tốc độ tính toán của Excel.

Cách sử dụng các Macro đo tốc độ tính toán Excel

Để dễ theo dõi và sử dụng các Macro này, chúng ta sẽ vẽ ra các Shape (hình khối) và gán macro vào các hình đó.

Ví dụ:

  • Vẽ ra 4 hình chữ nhật, trong từng hình đặt tên tương ứng theo các Macro.
  • Bấm chuột phải vào từng hình chữ nhật, chọn AssignMacro và gán macro tương ứng cho từng hình.

Ý nghĩa của các lệnh này như sau:

  • FullCalcTimer: Đo tốc độ tính của toàn bộ các công thức trong Workbook, trên tất cả các sheet
  • RangeTimer: Đo tốc độ tính của 1 vùng nhất định trong 1 sheet
  • ReCalcTimer: Thực hiện tính toán lại (giúp kiểm tra nhiều lần 1 nội dung tính toán)
  • SheetTimer: Đo tốc độ tính của các công thức có trong sheet đang được chọn mà không xét công thức có trong các sheet khác.

Ví dụ như sau:

Tạo 1 workbook có 2 sheet, trong đó cả 2 sheet đều có cấu trúc giống nhau gồm:

  • Từ ô A1:E10 áp dụng công thức =RANDBETWEEN(1,1000000) tức là tạo ra trong mỗi ô 1 số ngẫu nhiên từ 1 tới 1 triệu
  • Tại vùng A11:E11 đặt công thức tính tổng của cột tương ứng, từ dòng 1 tới dòng 10

Kiểm tra tốc độ tính toán cho vùng ô A1:A11, chúng ta chọn vùng này rồi bấm vào nút RangeTimer

Như vậy để tính toán cho 11 công thức trong các ô từ A1:A11, Excel chỉ mất 0,00296 giây.

Nếu tính lại, thời gian sẽ là:

Như vậy với 2 lần tính toán trên cùng 1 vùng ô, cùng 1 công thức ta thấy tốc độ tính toán khác nhau. Điều này là do giá trị tại các ô từ A1:A10 là khác nhau, dẫn tới kết quả tính toán của các ô khác nhau. Số càng lớn thì thời gian tính toán càng nhiều.

Kết luận

Bây giờ bạn đã có thể nói chính xác là Excel mất bao nhiêu lâu để tính toán 1 công thức, hay mất bao nhiêu lâu để tính ra kết quả của 1 bảng báo cáo được rồi. Việc kiểm soát thời gian tính toán sẽ giúp ích rất nhiều cho bạn khi làm việc với bảng tính lớn, công thức tính phức tạp, nâng cao. Hãy đón xem những nội dung này ở các bài viết sau nhé.

Các bạn có thể tải file mẫu của bài viết theo địa chỉ: http://bit.ly/2TZz3xx

Ngoài ra các bạn có thể tham khảo một số bài viết cùng chủ đề như:

Những nguyên nhân làm file excel trở nên nặng và tính toán chậm

Bí kíp giảm cân cho file Excel – Tập 1

Cách sửa file Excel bị nặng chậm, và gỡ bỏ mật khẩu bảo vệ