
Περίληψη
Για να εξαγάγετε πολλές αντιστοιχίσεις για να διαχωρίσετε κελιά, σε ξεχωριστές σειρές, μπορείτε να χρησιμοποιήσετε έναν τύπο πίνακα που βασίζεται σε INDEX και SMALL. Στο παράδειγμα που παρουσιάζεται, ο τύπος στο E5 είναι:
(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))
Αυτός είναι ένας τύπος πίνακα και πρέπει να εισαχθεί με Control + Shift + Enter.
Αφού εισαγάγετε τον τύπο στο πρώτο κελί, σύρετέ το προς τα κάτω και απέναντι για να συμπληρώσετε τα άλλα κελιά.
Εξήγηση
Σημείωση: αυτός ο τύπος χρησιμοποιεί δύο ονόματα εύρους: το "names" αναφέρεται στο C4: C11 και το "groups" αναφέρεται στο B4: B11. Αυτά τα ονόματα ορίζονται και στην παραπάνω οθόνη.
Η ουσία αυτού του τύπου είναι η εξής: χρησιμοποιούμε τη συνάρτηση SMALL για να πάρουμε έναν αριθμό σειράς που αντιστοιχεί σε ένα "nth match". Μόλις έχουμε τον αριθμό σειράς, απλώς τον περνάμε στη συνάρτηση INDEX, η οποία επιστρέφει την τιμή σε αυτήν τη σειρά.
Το κόλπο είναι ότι το SMALL συνεργάζεται με έναν πίνακα που κατασκευάζεται δυναμικά από το IF σε αυτό το bit:
IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)
Αυτό το απόσπασμα ελέγχει την ονομαζόμενη περιοχή "ομάδες" για την τιμή στο E4. Εάν βρεθεί, επιστρέφει έναν "κανονικοποιημένο" αριθμό σειράς από μια σειρά αριθμών σειρών που δημιουργήθηκαν με αυτό το μέρος του τύπου:
ROW(names)-MIN(ROW(names))+1
Το αποτέλεσμα είναι ένας πίνακας που περιέχει αριθμούς σειρών όπου υπάρχει αντιστοιχία και ΛΑΘΟΣ όπου όχι. Ο πίνακας μοιάζει με αυτό:
(1; FALSE; FALSE; FALSE; FALSE; 6; FALSE)
Αυτός ο πίνακας πηγαίνει σε ΜΙΚΡΟ. Η τιμή k για το SMALL (nth) προέρχεται από ένα επεκτεινόμενο εύρος:
ROWS($E$5:E5)
Κατά την αντιγραφή του πίνακα αποτελεσμάτων, το εύρος επεκτείνεται, προκαλώντας αύξηση του k (nth). Η SMALL συνάρτηση επιστρέφει κάθε αντίστοιχο αριθμό σειράς, ο οποίος παρέχεται στη συνάρτηση INDEX ως baris_num, με την ονομαζόμενη περιοχή "names" ως πίνακα.
Αντιμετώπιση σφαλμάτων
Όταν το ROWS επιστρέφει μια τιμή για k που δεν υπάρχει, το SMALL ρίχνει ένα σφάλμα #NUM. Αυτό συμβαίνει μετά την πραγματοποίηση όλων των αγώνων. Για να αποκρύψουμε το σφάλμα, χρησιμοποιούμε το IFERROR για να πιάσουμε το σφάλμα και να επιστρέψουμε μια κενή συμβολοσειρά ("").