Jawaban lain fokus pada mekanisme perhitungan ulang dan peran fungsi volatile, tapi saya pikir itu meleset dari inti pertanyaan. Ini membahas aturan-aturan yang telah digunakan tetapi tidak begitu banyak "mengapa". Saya akan fokus pada hal itu.
Konsep desain
Mari saya mulai dengan konsep desain dan blok bangunan spreadsheet paling modern. Ada "pembagian tanggung jawab". Fungsi adalah rutinitas khusus yang melakukan tugas tertentu, dan melakukannya setiap kali diminta. Terpisah dari itu, aplikasi spreadsheet mengontrol kapan mereka diminta.
Fungsi itu sendiri, tidak mengandung logika untuk memilih untuk menghitung ulang atau tidak menghitung ulang. Sifat semua fungsi Excel adalah melakukan beberapa jenis operasi kapan pun dipicu untuk melakukannya. Tidak ada fungsi yang memiliki "memori" sendiri dari nilai saat ini, atau riwayat dari kalkulasi sebelumnya. Tidak ada cara untuk mengetahui apakah ini pertama kali diminta melakukan tugasnya. Jadi tidak ada fungsi asli yang memiliki kemampuan untuk menjalankan hanya sekali. Jika ada fungsi yang dihitung ulang, itu akan melakukan apa yang dirancang untuk dilakukan dan menghasilkan nilai baru.
Aplikasi spreadsheet memang mengandung beberapa kecerdasan yang memungkinkannya menghemat waktu dengan melewatkan perhitungan ulang yang tidak perlu (seperti yang dijelaskan dalam jawaban teylyn). Satu- satunya waktu perhitungan ulang dilewati adalah jika aplikasi tahu bahwa nilai fungsi tidak terpengaruh oleh perubahan spreadsheet yang memicu kebutuhan untuk menghitung ulang hal-hal.
Jadi bagaimana jika Anda perlu menjalankan fungsi sekali dan kemudian mempertahankan nilainya? Ambil contoh Anda menghasilkan angka acak dan kemudian hasilnya tidak berubah. Itu menjelaskan membuat konstanta yang dibuat secara acak, dan Anda bisa melakukannya dengan Excel.
Excel tidak bisa tahu bagaimana Anda ingin menggunakan kemampuannya; apakah Anda ingin terus menghasilkan nilai-nilai baru atau mempertahankan set terakhir. Setiap opsi adalah use case yang didukung Excel. Excel mengakomodasi kedua kasus dengan memberi Anda alat untuk menghitung nilai baru, dan alat untuk mempertahankan nilai lama. Anda dapat membangun apa pun yang Anda inginkan. Tetapi pengguna memiliki tanggung jawab untuk membuatnya melakukan apa yang mereka inginkan.
Logika fungsi
Jadi mari kita lihat logika untuk apa fungsinya. Mungkinkah masuk akal bagi logika penghitungan ulang untuk melewati fungsi acak karena nilainya tidak boleh dipengaruhi oleh perubahan lain dalam spreadsheet?
Nilai atau tidak fungsi berubah pada perhitungan ulang tergantung pada tujuannya dan berdasarkan apa. Penghitungan nilai konstan akan selalu menghasilkan hasil yang sama. Operasi berdasarkan nilai sel yang belum berubah akan menghasilkan hasil yang sama.
Namun, beberapa fungsi dirancang dengan maksud dan tujuan menghasilkan hasil yang berbeda setiap saat. Pertimbangkan, misalnya, fungsi berdasarkan waktu saat ini. Mereka akan menghasilkan hasil baru berdasarkan waktu perhitungan ulang. Anda tidak dapat memiliki fungsi yang tujuannya adalah untuk menghasilkan nilai berdasarkan waktu saat ini dan tidak memperbaruinya saat dihitung ulang.
Tujuan kontrol perhitungan ulang adalah untuk selalu membuat segala sesuatu mencerminkan keadaan saat ini ketika perhitungan kembali dipicu. Kriteria itu tidak akan terpenuhi jika fungsi berdasarkan waktu saat ini tidak diperbarui.
Fungsi "acak", seperti RANDBETWEEN, memiliki tujuan menghasilkan nomor acak baru ketika dihitung ulang. Itulah yang seharusnya mereka lakukan. Anda bisa berargumen bahwa perhitungan ulang bisa dilewati karena nilainya tidak boleh dipengaruhi oleh hal-hal lain yang terjadi pada spreadsheet.
Jika itu adalah perilaku default, Anda akan memperbarui spreadsheet, tetapi nilai acak akan tetap konstan. Itu bukan perilaku yang sangat acak. Itu akan mendukung satu kasus penggunaan tetapi tidak yang lain. Kembali ke konsep desain dasar, itu ditangani seperti fungsi lainnya. Perilaku default adalah meminta Excel menghitung ulang. Jika Anda ingin mempertahankan nilai sebelumnya untuk use case Anda, terserah Anda untuk melakukannya dengan alat yang tersedia.