
सामान्य सूत्र
=INDEX(names,RANDARRAY(n,1,1,COUNTA(names),TRUE))
सारांश
नामों की एक यादृच्छिक सूची बनाने के लिए, आप किसी मौजूदा सूची से यादृच्छिक नामों का चयन करने के लिए INDEX फ़ंक्शन और RANDARRAY फ़ंक्शन का उपयोग कर सकते हैं। दिखाए गए उदाहरण में, D5 का सूत्र है:
=INDEX(names,RANDARRAY(10,1,1,COUNTA(names),TRUE))
जो नामित श्रेणी "नाम" (B5: B104) से 10 यादृच्छिक मान लौटाता है।
स्पष्टीकरण
मूल में, यह सूत्र 10 नामों को "नाम" नामक एक श्रेणी से पुनर्प्राप्त करने के लिए INDEX फ़ंक्शन का उपयोग करता है जिसमें 100 नाम शामिल हैं। उदाहरण के लिए, सूची से पांचवें नाम को पुनः प्राप्त करने के लिए, हम इस तरह से INDEX का उपयोग करते हैं:
=INDEX(names,5)
हालाँकि, इस मामले में चाल यह है कि हम एक ज्ञात स्थान पर एक भी नाम नहीं चाहते हैं, हम 1 और 100 के बीच अज्ञात स्थानों पर 10 यादृच्छिक नाम चाहते हैं। यह रैंडारी फ़ंक्शन के लिए एक उत्कृष्ट उपयोग मामला है, जो एक बना सकता है किसी श्रेणी में पूर्णांकों का यादृच्छिक सेट। अंदर से बाहर काम करते हुए, हम इस तरह 1 और 100 के बीच 10 यादृच्छिक संख्या प्राप्त करने के लिए RANDARRAY का उपयोग करते हैं:
RANDARRAY(10,1,1,COUNTA(names)
COUNTA फ़ंक्शन का उपयोग सूची में नामों की एक गतिशील गणना प्राप्त करने के लिए किया जाता है, लेकिन हम COUNTA को इस मामले में हार्डकोड 100 के साथ एक ही परिणाम के साथ बदल सकते हैं:
=INDEX(names,RANDARRAY(10,1,1,100,TRUE))
किसी भी स्थिति में, RANDARRAY एक सरणी में 10 नंबर लौटाएगा जो इस तरह दिखता है:
(64;74;13;74;96;65;5;73;84;85)
नोट: ये संख्याएँ केवल रैंडम हैं और दिखाए गए उदाहरण से सीधे मैप नहीं होती हैं।
पंक्ति सरणी के रूप में यह सरणी सीधे INDEX फ़ंक्शन पर लौटा दी गई है:
=INDEX(names, (64;74;13;74;96;65;5;73;84;85)
क्योंकि हम INDEX 10 पंक्ति संख्या दे रहे हैं, यह 10 परिणाम देगा, प्रत्येक दिए गए पद पर एक नाम के अनुरूप होगा। सेल D5 में शुरू होने वाले एक स्पिल रेंज में 10 यादृच्छिक नाम दिए गए हैं।
नोट: RANDARRAY एक अस्थिर कार्य है और हर बार वर्कशीट को बदल देने के बाद पुनर्गणना होगी, जिससे मूल्यों का सहारा लिया जा सकेगा। मानों को स्वचालित रूप से सॉर्ट करने से रोकने के लिए, आप सूत्रों को कॉपी कर सकते हैं, फिर सूत्रों को स्थैतिक मानों में बदलने के लिए पेस्ट स्पेशल> मान का उपयोग कर सकते हैं।
नकल को रोकें
उपरोक्त फॉर्मूला (आपकी आवश्यकताओं के आधार पर) के साथ एक समस्या यह है कि RANDARRAY कभी-कभी डुप्लिकेट नंबर उत्पन्न करेगा। दूसरे शब्दों में, इस बात की कोई गारंटी नहीं है कि RANDARRAY 10 अद्वितीय नंबर लौटाएगा।
सूची से 10 अलग-अलग नामों को सुनिश्चित करने के लिए, आप नामों की पूरी सूची को यादृच्छिक रूप से क्रमबद्ध करने के लिए सूत्र को अनुकूलित कर सकते हैं, फिर सूची से पहले 10 नामों को पुनः प्राप्त कर सकते हैं। F5 में सूत्र इस दृष्टिकोण का उपयोग करता है:
=INDEX(SORTBY(names,RANDARRAY(COUNTA(names))),SEQUENCE(10))
यहां दृष्टिकोण ऊपर के समान है - हम नामों की सूची से 10 मूल्यों को पुनः प्राप्त करने के लिए INDEX का उपयोग कर रहे हैं। हालाँकि, सूत्र के इस संस्करण में, हम इस तरह INDEX को सूची देने से पहले बेतरतीब ढंग से नामों की सूची को छाँट रहे हैं:
SORTBY(names,RANDARRAY(COUNTA(names)))
यहाँ, SORTBY फ़ंक्शन का उपयोग RANDARRAY फ़ंक्शन द्वारा बनाए गए सरणी मानों के साथ नामों की सूची को क्रमबद्ध करने के लिए किया जाता है, जैसा कि यहाँ और अधिक विवरण में बताया गया है।
अंत में, हमें 10 मूल्यों को पुनः प्राप्त करने की आवश्यकता है। क्योंकि हमारे पास पहले से ही एक यादृच्छिक क्रम में नाम हैं, हम केवल पहले 10 अनुरोध कर सकते हैं जैसे कि SEQUENCE फ़ंक्शन द्वारा बनाई गई एक सरणी के साथ:
SEQUENCE(10)
अनुक्रम अनुक्रम की एक सरणी बनाता है:
(1;2;3;4;5;6;7;8;9;10)
जो पंक्ति तर्क के रूप में INDEX फ़ंक्शन पर वापस आ जाता है। INDEX फिर मूल सूत्र की तरह एक स्पिल रेंज में पहले 10 नाम लौटाता है।