Τύπος Excel: Βρείτε τη μεγαλύτερη συμβολοσειρά με κριτήρια -

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

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Περίληψη

Για να βρείτε τη μεγαλύτερη συμβολοσειρά σε μια σειρά με κριτήρια, μπορείτε να χρησιμοποιήσετε έναν τύπο πίνακα που βασίζεται σε INDEX, MATCH, LEN και MAX. Στο παράδειγμα που εμφανίζεται, ο τύπος στο F6 είναι:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Όπου "ονόματα" είναι η ονομαζόμενη περιοχή C5: C14 και "class" είναι η ονομαζόμενη περιοχή B5: B14.

Σημείωση: αυτός είναι ένας τύπος πίνακα και πρέπει να εισαχθεί με τον έλεγχο + shift + enter.

Εξήγηση

Ο πυρήνας αυτού του τύπου είναι η συνάρτηση MATCH, η οποία εντοπίζει τη θέση της μεγαλύτερης συμβολοσειράς χρησιμοποιώντας τα παρεχόμενα κριτήρια:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Σημείωση Το MATCH έχει ρυθμιστεί ώστε να εκτελεί έναν ακριβή αγώνα, παρέχοντας μηδέν για τον τύπο αγώνα. Για τιμή αναζήτησης, έχουμε:

LEN(names)*(class=F5)

Η συνάρτηση LEN επιστρέφει μια σειρά αποτελεσμάτων (μήκη), ένα για κάθε όνομα στη λίστα όπου class = "A" από το κελί F5:

(5;6;8;6;6;0;0;0;0;0)

Αυτό φιλτράρει αποτελεσματικά όλη την κατηγορία Β και η συνάρτηση MAX επιστρέφει στη συνέχεια τη μεγαλύτερη τιμή, 8.

Για την κατασκευή ενός πίνακα αναζήτησης, χρησιμοποιούμε την ίδια προσέγγιση:

LEN(names)*(class=F5)

Και λάβετε το ίδιο αποτέλεσμα:

(5;6;8;6;6;0;0;0;0;0)

Μετά την εκτέλεση LEN και MAX, έχουμε έναν τύπο MATCH με αυτές τις τιμές:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

Στη συνέχεια, το MATCH επιστρέφει τη θέση 8 στη λίστα, 3, η οποία τροφοδοτεί το INDEX ως εξής:

=INDEX(names,3)

Τέλος, το INDEX επιστρέφει πιστά την τιμή στην 3η θέση των ονομάτων , που είναι "Jonathan".

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