Lưu ý: Câu trả lời này chỉ hợp lệ cho Bảng tính Google cũ. Hiện tại, chức năng không xác định như NOW()
là không được phép như các đối số của các chức năng tùy chỉnh . Cố gắng làm cho nên kết quả trong thông báo lỗi "Chức năng này không được phép tham chiếu đến một ô có NOW()
, RAND()
hoặc RANDBETWEEN()
" .
Các chức năng trong Google Apps Script được coi là xác định. Vì chức năng tùy chỉnh của bạn không có tham số, nên nó sẽ trả về cùng một kết quả mỗi lần.
Xem Vấn đề 2573: Math.random () không tính toán lại như một công thức bảng tính tùy chỉnh
Để tạo một số ngẫu nhiên mới mỗi lần, bạn sẽ nghĩ rằng nó nên hoạt động để vượt qua dấu thời gian hiện tại dưới dạng tham số:
=f(now())
Tuy nhiên, chức năng này dường như không bao giờ trở lại. Tôi đoán điều này là do giá trị trả về của các NOW()
thay đổi mỗi mili giây và phải mất hơn một phần nghìn giây để thực hiện phép tính.
Vì vậy, bạn sẽ phải giải quyết một cái gì đó không cần cập nhật thường xuyên, như
=f(day(now()))
Điều này sẽ trả về một giá trị ngẫu nhiên mới mỗi ngày trong tháng.
Lưu ý rằng nếu bạn sử dụng công thức này trong nhiều ô, nó sẽ trả về cùng một giá trị ngẫu nhiên cho tất cả các ô. Để tránh điều đó, bạn cũng có thể truyền tọa độ ô hiện tại làm tham số:
=f(day(now()), 2, 4)
Tôi đã thiết lập một bảng tính ví dụ , hãy xem.
Thay vì giới thiệu các tham số mới, bạn có thể may mắn thay đổi cài đặt trong Tệp → Cài đặt bảng tính → Tính toán lại thành Thay đổi và mỗi phút . Ít nhất điều này nên làm việc cho RAND()
, xem tài liệu . Hiện tại, điều này mang lại cho tôi một thông báo lỗi, vì vậy tôi không thể biết liệu nó có hoạt động không.