Τύπος Excel: Δημιουργία τυχαίων συμβολοσειρών κειμένου -

Γενική φόρμουλα

=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")

Αυτός ο πίνακας επιστρέφεται στη συνάρτηση TEXTJOIN ως όρισμα text1:

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

Το TEXTJOIN έχει ρυθμιστεί να χρησιμοποιεί μια κενή συμβολοσειρά ως οριοθέτη και να αγνοεί τις κενές τιμές. Με αυτήν τη διαμόρφωση, το TEXJOIN απλώς συνδυάζει όλες τις τιμές μαζί και επιστρέφει μια συμβολοσειρά κειμένου 6 χαρακτήρων όπως το "NEUGYC".

Μετρήστε τους χαρακτήρες μέσω προγραμματισμού

Αντί να κωδικοποιήσετε το μέγεθος των χαρακτήρων απευθείας στη συνάρτηση 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",… )

Αυτός ο κωδικός μπορεί να τοποθετηθεί στον αρχικό τύπο για να αντικαταστήσει το "chars" ως εξής:

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

Άλλοι χαρακτήρες

Οι χαρακτήρες στα ονόματα των χαρακτήρων εύρους μπορεί να είναι οτιδήποτε θέλετε. Εάν προσθέσετε περισσότερους από 26 χαρακτήρες (ή λιγότερους) ρυθμίστε τον αριθμό 26 ανάλογα με την περίπτωση, ή χρησιμοποιήστε το COUNTA όπως εξηγείται παραπάνω.

Χωρίς Excel 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 (συμπεριλαμβανομένης) που αντιστοιχεί στην τιμή ASCII για τα γράμματα AZ (κεφαλαία). Η συνάρτηση CHAR μεταφράζει την αριθμητική τιμή σε ένα γράμμα. Όπως παραπάνω, όλα τα αποτελέσματα συνδυάζονται σε μία συμβολοσειρά κειμένου.

ενδιαφέροντα άρθρα...