एक्सेल सूत्र: यादृच्छिक पाठ तार उत्पन्न करें -

सामान्य सूत्र

=INDEX(characters,RANDARRAY(n,1,1,count,TRUE))

सारांश

रैंडम टेक्स्ट स्ट्रिंग्स की सूची बनाने के लिए, आप INDEX, RANDARRAY और TEXTJOIN के आधार पर एक सूत्र का उपयोग कर सकते हैं। दिखाए गए उदाहरण में, D5 का सूत्र है:

=TEXTJOIN("",1,INDEX(chars,RANDARRAY(6,1,1,26,TRUE)))

जहां वर्णों का नाम B5: B30 है, जिसमें अक्षर AZ है। जैसा कि सूत्र स्तंभ के नीचे कॉपी किया गया है, यह प्रत्येक पंक्ति पर एक नया 6-वर्ण टेक्स्ट स्ट्रिंग उत्पन्न करता है।

स्पष्टीकरण

Excel 365 में नए डायनेमिक सरणी फ़ार्मुलों को सूत्रों के साथ कुछ मुश्किल समस्याओं को हल करना बहुत आसान है।

इस उदाहरण में, लक्ष्य यादृच्छिक 6-वर्ण कोड की एक सूची तैयार करना है। यादृच्छिकता को RANDARRAY फ़ंक्शन द्वारा नियंत्रित किया जाता है, Excel 365 में एक नया फ़ंक्शन। RANDARRAY 6 यादृच्छिक संख्या INDEX पर लौटाता है, जो तब नामित श्रेणी वर्णों से 6 यादृच्छिक मान प्राप्त करता है। INDEX के परिणाम तब TEXTJOIN फ़ंक्शन के साथ एक साथ सम्‍मिलित किए जाते हैं।

दिखाए गए उदाहरण में, D5 का सूत्र है:

=TEXTJOIN("",1,INDEX(chars,RANDARRAY(6,1,1,26,TRUE)))

अंदर से बाहर काम करते हुए, RANDARRAY फ़ंक्शन का उपयोग 1-26 के बीच छह यादृच्छिक संख्याओं वाले एक सरणी को उत्पन्न करने के लिए किया जाता है:

RANDARRAY(6,1,1,26,TRUE) // return array like (14;5;21;7;25;3)

नोट सरणी वापसी RANDARRAY फ़ंक्शन के प्रत्येक उदाहरण के साथ भिन्न होगी। इसके अलावा, क्योंकि RANDARRAY एक अस्थिर कार्य है, यह प्रत्येक वर्कशीट परिवर्तन के साथ पुनर्गणना करेगा।

यादृच्छिक संख्या की यह सरणी पंक्तियों के तर्क के रूप में सीधे INDEX फ़ंक्शन पर वापस आ जाती है:

INDEX(chars,(14;5;21;7;25;3))

क्योंकि हम INDEX को 6 पंक्तियों के लिए कह रहे हैं, हमें इस तरह से एक सरणी में 6 परिणाम मिलते हैं:

("N","E","U","G","Y","C")

यह सरणी पाठ 1 तर्क के रूप में TEXTJOIN फ़ंक्शन पर लौटा दी गई है:

=TEXTJOIN("",1,("N","E","U","G","Y","C")) // returns "NEUGYC"

TEXTJOIN एक खाली स्ट्रिंग को सीमांकक के रूप में उपयोग करने और खाली मानों को अनदेखा करने के लिए सेट किया गया है। इस विन्यास के साथ, TEXJOIN बस सभी मूल्यों को एक साथ समेटता है और "NEUGYC" की तरह 6-वर्ण का पाठ स्ट्रिंग लौटाता है।

प्रोग्राम की वर्णानुक्रम में गणना करें

सीधे RANDARRAY फ़ंक्शन में वर्णों के आकार को हार्डकोड करने के बजाय, आप सरणी में तत्वों को गिनने के लिए COUNTA फ़ंक्शन का उपयोग कर सकते हैं और उस गणना को RANDARRAY पर वापस कर सकते हैं:

RANDARRAY(6,1,1,COUNTA(chars),TRUE)

यह मानता है कि वर्णों में कोई खाली कोशिकाएं नहीं होती हैं।

प्रोग्राम को वर्णानुक्रम में जनरेट करें

चूंकि अक्षर AZ में संख्यात्मक कोड मान हैं, इसलिए किसी श्रेणी का उपयोग करने के बजाय, प्रोग्राम को पाठ स्ट्रिंग को इकट्ठा करने के लिए उपयोग किए जाने वाले वर्णों का सरणी उत्पन्न करना संभव है। यह CHAR फ़ंक्शन और SEQUENCE फ़ंक्शन के साथ किया जा सकता है।

सभी अपरकेस अक्षर AZ के साथ एक सरणी उत्पन्न करने के लिए, जो ASCII 65-90 में मैप करता है:

=CHAR(SEQUENCE(26,1,65,1)) // returns ("A","B","C",… )

निचले अक्षर az उत्पन्न करने के लिए, जो ASCII 97-122 के अनुरूप है:

=CHAR(SEQUENCE(26,1,97,1)) // returns ("a","b","c",… )

इस कोड को इस तरह "वर्ण" को बदलने के लिए मूल सूत्र में छोड़ा जा सकता है:

=TEXTJOIN("",1,INDEX(CHAR(SEQUENCE(26,1,65,1)),RANDARRAY(6,1,1,26,TRUE)))

अन्य कैरेक्टर

नामित श्रेणी वर्णों के वर्ण आपके पसंद के अनुसार कुछ भी हो सकते हैं। यदि आप 26 से अधिक वर्ण जोड़ते हैं (या कम) संख्या 26 को उपयुक्त के रूप में समायोजित करें, या ऊपर बताए अनुसार COUNTA का उपयोग करें।

एक्सेल 365 के बिना

It is possible to generate random text strings without Excel 365, but the formula is more tedious and redundant. Since we don't have a good way to get 6 random numbers all at once, we use the RANDBETWEEN function to get one random value at a time:

=INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))& INDEX(chars,RANDBETWEEN(1,26))

This formula uses the INDEX function to retrieve one random value at a time from the named range chars, and the 6 results are concatenated together into a single text string. Line breaks added for readability.

It is also possible to generate values A-Z directly with CHAR and RANDBETWEEN like this:

=CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))& CHAR(RANDBETWEEN(65,90))

इस संस्करण में, RANDBETWEEN 65 और 90 (समावेशी) के बीच एक मान लौटा रहा है जो अक्षर AZ (अपरकेस) के लिए ASCII मूल्य से मेल खाता है। CHAR फ़ंक्शन किसी अक्षर के लिए संख्यात्मक मान का अनुवाद करता है। ऊपर के रूप में, सभी परिणामों को एक ही पाठ स्ट्रिंग में एक साथ समाहित किया गया है।

दिलचस्प लेख...