Bài viết: Chiêu thứ 80: Giảm tác động của việc tính toán lại đối với các hàm bất định

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,715
Chiêu thứ 80: Giảm tác động của việc tính toán lại đối với các hàm bất định


Các hàm bất định là các hàm sẽ tự tính toán lại bất cứ khi nào người dùng thực hiện một hành động nào đó trên Excel. Nó có thể khiến bạn lãng phí một lượng thời gian không cần thiết, và đôi khi bạn mong muốn tìm các cách để giảm những sự chậm trễ do các hàm này gây nên.

Một trong những hàm bất định mà bạn có thể thấy chính là hàm NOW, TODAY, hoặc RAND, RANDBETWEEN,… Càng nhiều hàm bất định trong bảng tính, bạn sẽ gặp càng nhiều rắc rối bởi tất cả các hàm sẽ tự tính lại, toàn bộ. Và nó sẽ trở thành cơn ác mộng khi các hàm bất định của bạn kết hợp các hàm ổn định, và khiến cho toàn bộ bảng tính của bạn trở nên bất định hoàn toàn.

Thử tưởng tượng rằng giả sử bạn sử dụng đồng thời 1 hàm TODAY cho 100 dòng, điều đó có nghĩa là một sự thay đổi của bạn sẽ dẫn tới bảng tính tự động tính toán lại 100 lần do hàm TODAY gây nên. Tuy nhiên, nếu bạn tinh ý đặt 1 cái Name, và trên cái Name đó, bạn dùng hàm TODAY.

27484896842_fa30b72658_o.png


Sau đó, bạn gán vào công thức của 100 dòng kia cái Name bạn vừa tạo thay vì là hàm. Excel sẽ chỉ thực hiện hàm TODAY đúng 1 lần duy nhất và sau đó Name kia sẽ gán một lúc vào 100 dòng cho bạn. 100 lần thực hiện so với 1 lần thực hiện, phần sau sẽ tốt hơn chứ, phải không?

Có thể nhiều lúc bạn không thể thấy sự khác biệt vì hàm bất định không phải lúc nào cũng sử dụng trên phương diện rộng, tuy nhiên, chúng ta cũng nên cân nhắc chiêu thức này, vì dù sao, đây cũng là chiêu tăng tốc mà, phải không?

Chúc bạn thành công.

Một số bài viết có liên quan:
1/ Chiêu thứ 79 : Mặc kệ giá trị lỗi
2/ Chiêu thứ 78 : Chuyển đổi Ngày tháng trong Excel
3/ Chiêu thứ 77: Chuyển đổi dữ liệu dọc thành ngang bằng công thức
4/ Chiêu thứ 76: Không bỏ sót ô rỗng
5/ Chiêu thứ 75: Đối chiếu dữ liệu cũ và mới

6/ Chiêu thứ 74: Di chuyển công thức chứa địa chỉ tương đối mà không làm thay đổi tham chiếu
7/ Chiêu thứ 73: Thêm mô tả vào công thức của bạn
8/ Chiêu thứ 72: Tạo số tổng cộng cho biểu đồ cột nhiều thành phần (Stacked Column Chart)
9/ Chiêu thứ 71: Đánh dấu tên trục theo điều kiện
10/ Chiêu thứ 70: Thay thế điểm bằng hình
 
Lần chỉnh sửa cuối:
Upvote 0
Chào A Kyo.
A cho e hỏi nhờ 1 chút là.
Có phải khi đặt name như vậy thì e gõ bảng data ở dòng khác sau đó save lại thì hàm today() ở đây không tự tính lại chứ ah.
 
Chào A Kyo.
A cho e hỏi nhờ 1 chút là.
Có phải khi đặt name như vậy thì e gõ bảng data ở dòng khác sau đó save lại thì hàm today() ở đây không tự tính lại chứ ah.
 
Hình như có gì đó không ổn.
Chúng ta thử làm một thí nghiệm nho nhỏ như sau.
Đặt một name A với công thức sau:
Mã:
=RAND()
Nếu như theo phát biểu của bài này thì khi dùng name A này ở nhiều ô thì giá trị của name A phải giống nhau. Nhưng thử đặt công thức =A ở hai ô A1 và B1 sẽ thấy kết quả hoàn toàn khác nhau.
Ngay cả khi trong một vùng sử dụng công thức mảng các giá trị cũng khác nhau. Thử dùng công thức mảng =A cho vùng A1:A10 sẽ thấy các giá trị trả về là khác nhau.
Thậm chí là trong 1 ô, gọi name A hai lần cũng có hai kết quả khác nhau. Thử với công thức =A&"_"&A tại một ô bất kỳ sẽ thấy ngay.
 
Web KT
Back
Top Bottom