Τύπος Excel: Εξαγωγή πολλαπλών αντιστοιχιών σε ξεχωριστές στήλες -

Περίληψη

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

(=IFERROR(INDEX(names,SMALL(IF(groups=$E5,ROW(names)-MIN(ROW(names))+1),COLUMNS($E$5:E5))),""))

Αυτός είναι ένας τύπος πίνακα και πρέπει να εισαχθεί με Control + Shift + Enter.

Αφού εισαγάγετε τον τύπο στο πρώτο κελί, σύρετέ το προς τα κάτω και απέναντι για να συμπληρώσετε τα άλλα κελιά.

Εξήγηση

Σημείωση: αυτός ο τύπος χρησιμοποιεί δύο ονόματα εύρους: το "names" αναφέρεται στο C5: C11 και το "groups" αναφέρεται στο B5: B11. Αυτά τα ονόματα ορίζονται και στην παραπάνω οθόνη.

Η ουσία αυτού του τύπου είναι η εξής: χρησιμοποιούμε τη συνάρτηση SMALL για να δημιουργήσουμε έναν αριθμό σειράς που αντιστοιχεί σε ένα "nth match". Μόλις έχουμε τον αριθμό σειράς, απλώς τον περνάμε στη συνάρτηση INDEX, η οποία επιστρέφει την τιμή σε αυτήν τη σειρά.

Το κόλπο είναι ότι το SMALL συνεργάζεται με έναν πίνακα που κατασκευάζεται δυναμικά από το IF σε αυτό το bit:

IF(groups=$E5,ROW(names)-MIN(ROW(names))+1)

Αυτό το απόσπασμα ελέγχει την ονομαζόμενη περιοχή "ομάδες" για την τιμή στο E5. Εάν βρεθεί, επιστρέφει έναν αριθμό σειράς από έναν πίνακα σχετικών αριθμών σειρών που δημιουργήθηκαν με:

ROW(names)-MIN(ROW(names))+1

Το τελικό αποτέλεσμα είναι ένας πίνακας που περιέχει αριθμούς όπου υπάρχει ένας αγώνας και FALSE όπου δεν:

(1; FALSE; FALSE; FALSE; FALSE; 6; FALSE)

Αυτός ο πίνακας πηγαίνει σε ΜΙΚΡΟ. Η τιμή k για το SMALL (nth) προέρχεται από ένα επεκτεινόμενο εύρος:

COLUMNS($E$5:E5)

Όταν αντιγράφεται στον πίνακα αποτελεσμάτων, το εύρος επεκτείνεται, προκαλώντας αύξηση του k (nth). Η SMALL συνάρτηση επιστρέφει κάθε αντίστοιχο αριθμό σειράς, ο οποίος παρέχεται στη συνάρτηση INDEX ως baris_num, με την ονομαζόμενη περιοχή "names" ως πίνακα.

Αντιμετώπιση σφαλμάτων

Όταν το COLUMNS επιστρέφει μια τιμή για το k που δεν υπάρχει, το SMALL ρίχνει ένα σφάλμα #NUM. Αυτό συμβαίνει μετά την πραγματοποίηση όλων των αγώνων. Για να καταστείλουμε το σφάλμα, τυλίγουμε τον τύπο στη συνάρτηση IFERROR για να πιάσουμε σφάλματα και να επιστρέψουμε μια κενή συμβολοσειρά ("").

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