Τύπος Excel: Τυχαία λίστα ονομάτων -

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

=INDEX(names,RANDARRAY(n,1,1,COUNTA(names),TRUE))

Περίληψη

Για να δημιουργήσετε μια τυχαία λίστα ονομάτων, μπορείτε να χρησιμοποιήσετε τη συνάρτηση INDEX και τη συνάρτηση RANDARRAY για να επιλέξετε τυχαία ονόματα από μια υπάρχουσα λίστα. Στο παράδειγμα που εμφανίζεται, ο τύπος στο D5 είναι:

=INDEX(names,RANDARRAY(10,1,1,COUNTA(names),TRUE))

που επιστρέφει 10 τυχαίες τιμές από την ονομαζόμενη περιοχή "names" (B5: B104).

Εξήγηση

Στον πυρήνα, αυτός ο τύπος χρησιμοποιεί τη συνάρτηση INDEX για να ανακτήσει 10 τυχαία ονόματα από μια ονομαζόμενη περιοχή που ονομάζεται "names", η οποία περιέχει 100 ονόματα. Για παράδειγμα, για να ανακτήσουμε το πέμπτο όνομα από τη λίστα, χρησιμοποιούμε το INDEX ως εξής:

=INDEX(names,5)

Ωστόσο, το κόλπο σε αυτήν την περίπτωση είναι ότι δεν θέλουμε ένα όνομα σε μια γνωστή τοποθεσία, θέλουμε 10 τυχαία ονόματα σε άγνωστες τοποθεσίες μεταξύ 1 και 100. Αυτή είναι μια εξαιρετική περίπτωση χρήσης για τη συνάρτηση RANDARRAY, η οποία μπορεί να δημιουργήσει τυχαίο σύνολο ακέραιων αριθμών σε μια δεδομένη περιοχή. Δουλεύοντας από μέσα προς τα έξω, χρησιμοποιούμε το RANDARRAY για να πάρουμε 10 τυχαίους αριθμούς μεταξύ 1 και 100 όπως:

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 αποτελέσματα, το καθένα αντιστοιχεί σε ένα όνομα στη δεδομένη θέση. Τα 10 τυχαία ονόματα επιστρέφονται σε εύρος διαρροών ξεκινώντας από το κελί D5.

Σημείωση: Το RANDARRAY είναι μια πτητική συνάρτηση και θα υπολογίζει εκ νέου κάθε φορά που αλλάζει το φύλλο εργασίας, προκαλώντας την εκτίμηση των τιμών. Για να σταματήσετε την αυτόματη ταξινόμηση τιμών, μπορείτε να αντιγράψετε τους τύπους και, στη συνέχεια, να χρησιμοποιήσετε την Ειδική επικόλληση> Τιμές για να μετατρέψετε τους τύπους σε στατικές τιμές.

Αποτροπή διπλότυπων

Ένα πρόβλημα με τον παραπάνω τύπο (ανάλογα με τις ανάγκες σας) είναι ότι το RANDARRAY μερικές φορές δημιουργεί διπλούς αριθμούς. Με άλλα λόγια, δεν υπάρχει εγγύηση ότι το RANDARRAY θα επιστρέψει 10 μοναδικούς αριθμούς.

Για να διασφαλίσετε 10 διαφορετικά ονόματα από τη λίστα, μπορείτε να προσαρμόσετε τον τύπο για να ταξινομήσετε τυχαία την πλήρη λίστα ονομάτων και, στη συνέχεια, να ανακτήσετε τα πρώτα 10 ονόματα από τη λίστα. Ο τύπος στο F5 χρησιμοποιεί αυτήν την προσέγγιση:

=INDEX(SORTBY(names,RANDARRAY(COUNTA(names))),SEQUENCE(10))

Η προσέγγιση εδώ είναι η ίδια όπως παραπάνω - χρησιμοποιούμε το INDEX για να ανακτήσουμε 10 τιμές από τη λίστα ονομάτων. Ωστόσο, σε αυτήν την έκδοση του τύπου, ταξινομούμε τη λίστα ονομάτων τυχαία πριν δώσουμε τη λίστα στον INDEX ως εξής:

SORTBY(names,RANDARRAY(COUNTA(names)))

Εδώ, η συνάρτηση SORTBY χρησιμοποιείται για την τυχαία ταξινόμηση της λίστας ονομάτων με τιμές πίνακα που δημιουργήθηκαν από τη συνάρτηση RANDARRAY, όπως εξηγείται με περισσότερες λεπτομέρειες εδώ.

Τέλος, πρέπει να ανακτήσουμε 10 τιμές. Επειδή έχουμε ήδη ονόματα σε τυχαία σειρά, μπορούμε απλά να ζητήσουμε τα πρώτα 10 με έναν πίνακα που δημιουργήθηκε από τη συνάρτηση SEQUENCE όπως αυτό:

SEQUENCE(10)

Η SEQUENCE δημιουργεί μια σειρά διαδοχικών αριθμών:

(1;2;3;4;5;6;7;8;9;10)

που επιστρέφεται στη συνάρτηση INDEX ως όρισμα γραμμής. Στη συνέχεια, το INDEX επιστρέφει τα πρώτα 10 ονόματα σε ένα εύρος διαρροών όπως ο αρχικός τύπος.

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