अन्य उत्तर पुनर्गणना के यांत्रिकी और वाष्पशील कार्यों की भूमिका पर ध्यान केंद्रित करते हैं, लेकिन मुझे लगता है कि प्रश्न के सार का हिस्सा याद आता है। यह उन नियमों को संबोधित करता है जो नियोजित किए गए हैं लेकिन इतना "क्यों" नहीं। मैं उस पर ध्यान केंद्रित करूंगा।
रचना विचार
मुझे एक डिजाइन अवधारणा और अधिकांश आधुनिक स्प्रैडशीट के भवन ब्लॉकों से शुरू करना चाहिए। "जिम्मेदारी का विभाजन" है। फ़ंक्शंस समर्पित दिनचर्या हैं जो एक विशिष्ट कार्य करते हैं, और हर बार जब उनसे पूछा जाता है, तो इसे करें। उनसे अलग, स्प्रेडशीट एप्लिकेशन नियंत्रित करता है जब वे पूछते हैं।
कार्य, स्वयं, पुनर्गणना या पुनर्गणना का चयन करने के लिए कोई तर्क नहीं रखते हैं। जब भी ऐसा करने के लिए ट्रिगर किया जाता है तब सभी एक्सेल फ़ंक्शन की प्रकृति कुछ प्रकार के ऑपरेशन करने के लिए होती है। किसी भी फ़ंक्शन की अपनी वर्तमान मूल्य की अपनी "मेमोरी" या इसके पिछले गणना का इतिहास नहीं है। यह जानने का कोई तरीका नहीं है कि यह पहली बार है जब इसे अपना काम करने के लिए कहा जा रहा है। इसलिए किसी भी देशी कार्य को केवल एक बार चलाने की क्षमता नहीं है। यदि किसी फ़ंक्शन को पुनर्गणना किया जाता है, तो वह वही करेगा जो वह करने के लिए डिज़ाइन किया गया है और एक नए मूल्य का उत्पादन करता है।
स्प्रेडशीट एप्लिकेशन में कुछ बुद्धिमत्ता होती है जो इसे अनावश्यक पुनरावृत्ति को छोड़ कर समय बचाने की सुविधा देती है (जैसा कि टायलिन के उत्तर में वर्णित है)। केवल समय पुनर्गणना को छोड़ दिया है आवेदन जानता है कि समारोह के मूल्य स्प्रेडशीट परिवर्तन है कि पुनर्गणना चीजों की जरूरत शुरू हो रहा से प्रभावित नहीं किया गया है।
तो क्या होगा अगर आपको एक बार एक फ़ंक्शन चलाने और उसके मूल्य को संरक्षित करने की आवश्यकता है? एक यादृच्छिक संख्या के उत्पादन का अपना उदाहरण लें और फिर परिणाम न बदलें। यह बेतरतीब ढंग से उत्पन्न स्थिरांक बनाने का वर्णन करता है, और आप एक्सेल के साथ ऐसा कर सकते हैं।
एक्सेल नहीं जान सकता कि आप उसकी क्षमताओं का उपयोग कैसे करना चाहते हैं; आप नए मूल्यों का उत्पादन जारी रखना चाहते हैं या अंतिम सेट को संरक्षित करना चाहते हैं। प्रत्येक विकल्प एक उपयोग मामला है जिसे एक्सेल समर्थन करता है। Excel आपको नए मानों की गणना करने के लिए उपकरण और पुराने मानों को संरक्षित करने के लिए उपकरण देकर दोनों मामलों को समायोजित करता है। आप जो चाहें बना सकते हैं। लेकिन उपयोगकर्ता की ज़िम्मेदारी है कि वह वही करे जो वह चाहता है।
फंक्शन लॉजिक
तो फ़ंक्शन क्या करता है इसके लिए तर्क को देखने दें। यह एक यादृच्छिक समारोह को छोड़ने के लिए पुनर्गणना तर्क के लिए समझ में आ सकता है क्योंकि स्प्रेडशीट में अन्य परिवर्तनों से इसका मूल्य प्रभावित नहीं होना चाहिए?
पुनर्गणना पर किसी फ़ंक्शन का मान बदलता है या नहीं, यह उसके उद्देश्य पर निर्भर करता है और यह किस पर आधारित है। निरंतर मूल्यों पर एक गणना हमेशा एक ही परिणाम उत्पन्न करेगी। सेल मानों पर आधारित एक ऑपरेशन जो नहीं बदला है, उसी परिणाम का उत्पादन करेगा।
हालांकि, कुछ फ़ंक्शन हर बार एक अलग परिणाम बनाने के इरादे और उद्देश्य के साथ डिज़ाइन किए जाते हैं। उदाहरण के लिए, मौजूदा समय के आधार पर किए गए कार्यों पर विचार करें। वे पुनर्गणना के समय के आधार पर एक नया परिणाम तैयार करेंगे। आपके पास एक फ़ंक्शन नहीं हो सकता जिसका उद्देश्य वर्तमान समय के आधार पर एक मूल्य का उत्पादन करना है और पुनर्गणना होने पर इसे अपडेट नहीं करना है।
पुनर्गणना नियंत्रण उद्देश्य हमेशा सब कुछ चीजों की वर्तमान स्थिति को दर्शाता है जब पुनर्गणना शुरू हो जाती है। यदि मौजूदा समय के आधार पर फ़ंक्शन अपडेट नहीं किए गए थे, तो यह मानदंड पूरा नहीं होगा।
RANDBETWEEN की तरह "यादृच्छिक" फ़ंक्शन का उद्देश्य पुनर्गणना होने पर एक नया यादृच्छिक संख्या बनाने का उद्देश्य है। यही उनका इरादा है। आप तर्क दे सकते हैं कि पुनर्गणना को छोड़ दिया जा सकता है क्योंकि मूल्य स्प्रेडशीट पर होने वाली अन्य चीजों से प्रभावित नहीं होना चाहिए।
यदि वह डिफ़ॉल्ट व्यवहार था, तो आप स्प्रेडशीट को अपडेट कर रहे होंगे, लेकिन यादृच्छिक मान स्थिर रहेगा। यह बहुत यादृच्छिक व्यवहार नहीं है। यह एक उपयोग मामले का समर्थन करेगा लेकिन दूसरे का नहीं। मूल डिजाइन अवधारणा पर वापस जाते हुए, इसे किसी अन्य फ़ंक्शन की तरह संभाला जाता है। डिफ़ॉल्ट व्यवहार के लिए एक्सेल पुनर्गणना है। यदि आप अपने उपयोग के मामले के लिए पिछले मूल्य को संरक्षित करना चाहते हैं, तो यह आपके लिए उपलब्ध उपकरणों के साथ करना है।