Πίνακας περιεχομένων
Ένας εύκολος τρόπος μετατροπής ενός πίνακα ή μιας περιοχής σε στήλη με τη συνάρτηση TOCOL.
Η δυνατότητα μετατόπισης δεδομένων από στήλες σε γραμμές και αντίστροφα υπάρχει στο Excel εδώ και αρκετό καιρό. Αλλά η μετατροπή μιας σειράς κελιών σε μία μόνο στήλη ήταν μια δύσκολη υπόθεση. Τώρα, αυτό επιτέλους αλλάζει. Η Microsoft εισήγαγε μια νέα συνάρτηση, που ονομάζεται TOCOL, η οποία μπορεί να κάνει μια μετατροπή από πίνακα σε στήλη σε χρόνο μηδέν. Παρακάτω παρατίθεται μια λίστα με εργασίες που μπορεί να λύσει εύκολα αυτή η νέα συνάρτηση.
Λειτουργία TOCOL του Excel
Η συνάρτηση TOCOL στο Excel μετατρέπει έναν πίνακα ή μια σειρά κελιών σε μία μόνο στήλη.
Η συνάρτηση λαμβάνει τρία ορίσματα, αλλά μόνο το πρώτο είναι απαραίτητο.
TOCOL(array, [ignore], [scan_by_column])Πού:
Συστοιχία (υποχρεωτικό) - ένας πίνακας ή μια περιοχή που θα μετατραπεί σε στήλη.
Αγνοήστε το (προαιρετικό) - καθορίζει εάν θα αγνοούνται τα κενά ή/και τα σφάλματα. Μπορεί να είναι μία από αυτές τις τιμές:
- 0 ή παραλείπεται (προεπιλογή) - διατήρηση όλων των τιμών
- 1 - αγνοήστε τα κενά
- 2 - αγνόηση σφαλμάτων
- 3 - αγνοήστε τα κενά και τα σφάλματα
Scan_by_column (προαιρετικό) - καθορίζει εάν η σάρωση της συστοιχίας θα γίνεται οριζόντια ή κάθετα:
- FALSE ή παραλείπεται (προεπιλογή) - σαρώνει τον πίνακα ανά γραμμή από αριστερά προς τα δεξιά.
- TRUE - σαρώνει τον πίνακα ανά στήλη από πάνω προς τα κάτω.
Συμβουλές:
- Για να μετατρέψετε έναν πίνακα σε μία μόνο γραμμή, χρησιμοποιήστε τη συνάρτηση TOROW.
- Για να κάνετε τον αντίστροφο μετασχηματισμό από στήλη σε πίνακα, χρησιμοποιήστε είτε τη συνάρτηση WRAPCOLS για περιτύλιξη ανά στήλη είτε τη συνάρτηση WRAPROWS για περιτύλιξη ανά γραμμή.
- Για να μεταθέσετε έναν πίνακα από οριζόντιο σε κατακόρυφο ή αντίστροφα, δηλαδή να αλλάξετε γραμμές σε στήλες, χρησιμοποιήστε τη συνάρτηση TRANSPOSE.
Διαθεσιμότητα TOCOL
Το TOCOL είναι μια νέα λειτουργία, η οποία υποστηρίζεται από το Excel για το Microsoft 365 (για Windows και Mac) και το Excel για το διαδίκτυο.
Βασικός τύπος TOCOL για τη μετατροπή εύρους σε στήλη
Ο τύπος TOCOL στην απλούστερη μορφή του απαιτεί μόνο ένα όρισμα - array Για παράδειγμα, για να τοποθετήσετε έναν δισδιάστατο πίνακα αποτελούμενο από 3 στήλες και 4 γραμμές σε μία μόνο στήλη, ο τύπος είναι:
=TOCOL(A2:C5)
Ο τύπος εισάγεται μόνο σε ένα κελί (το E2 σε αυτό το παράδειγμα) και διαχέεται αυτόματα στα παρακάτω κελιά. Όσον αφορά το Excel, το αποτέλεσμα ονομάζεται περιοχή διαρροής.
Πώς λειτουργεί αυτή η φόρμουλα:
Τεχνικά, το εύρος A2:C5 μετατρέπεται πρώτα σε δισδιάστατο πίνακα. Προσέξτε τις γραμμές που χωρίζονται με άνω και κάτω τελεία και τις στήλες που χωρίζονται με κόμμα:
{"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}
Η συνάρτηση TOCOL σαρώνει τον πίνακα από αριστερά προς τα δεξιά και τον μετατρέπει σε έναν μονοδιάστατο κάθετο πίνακα:
{"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}
Το αποτέλεσμα τοποθετείται στο κελί E2, από το οποίο διαχέεται στα παρακάτω κελιά.
Πώς να χρησιμοποιήσετε τη συνάρτηση TOCOL στο Excel - παραδείγματα τύπων
Για να κατανοήσετε καλύτερα τις δυνατότητες της συνάρτησης TOCOL και τις εργασίες που μπορεί να καλύψει, ας ρίξουμε μια ματιά σε μερικά παραδείγματα τύπων.
Μετατροπή πίνακα σε στήλη αγνοώντας κενά και σφάλματα
Όπως ίσως παρατηρήσατε στο προηγούμενο παράδειγμα, ο προεπιλεγμένος τύπος TOCOL διατηρεί όλες τις τιμές από τον πίνακα προέλευσης, συμπεριλαμβανομένων των κενών κελιών και των σφαλμάτων.
Στον πίνακα που προκύπτει, τα κενά κελιά αναπαρίστανται με μηδενικά, γεγονός που μπορεί να προκαλέσει σύγχυση, ειδικά αν ο αρχικός πίνακας έχει τιμές 0. Η λύση είναι να παράλειψη κενών Για το σκοπό αυτό, θέτετε το 2ο όρισμα σε 1:
=TOCOL(A2:C5, 1)
Προς αγνοήστε τα σφάλματα , ορίστε το 2ο όρισμα σε 2:
=TOCOL(A2:C5, 2)
Να αποκλείσετε και τα δύο, κενά και σφάλματα , χρησιμοποιήστε 3 για το αγνοήστε το επιχείρημα:
=TOCOL(A2:C5, 3)
Οριζόντια ή κάθετη σάρωση συστοιχίας
Με την προεπιλεγμένη scan_by_column (FALSE ή παραλείπεται), η συνάρτηση TOCOL σαρώνει τον πίνακα οριζόντια ανά γραμμή. Για να επεξεργαστείτε τις τιμές ανά στήλη, ορίστε αυτό το όρισμα σε TRUE ή 1. Για παράδειγμα:
=TOCOL(A2:C5, ,TRUE)
Παρατηρήστε ότι και στις δύο περιπτώσεις, οι πίνακες που επιστρέφονται έχουν το ίδιο μέγεθος, αλλά οι τιμές είναι τοποθετημένες με διαφορετική σειρά.
Συνδυασμός πολλαπλών περιοχών σε μία στήλη
Αν έχετε να κάνετε με πολλές μη συνεχόμενες σειρές, τότε μπορείτε πρώτα να συνδυάσετε τις σειρές κάθετα σε έναν ενιαίο πίνακα με τη βοήθεια της συνάρτησης VSTACK και στη συνέχεια να χρησιμοποιήσετε την TOCOL για να μετατρέψετε τον συνδυασμένο πίνακα σε στήλη.
Αν υποθέσουμε ότι το πρώτο εύρος είναι A2:C4 και το δεύτερο εύρος είναι A8:C9, ο τύπος έχει την εξής μορφή:
=TOCOL(VSTACK(A2:C4, A8:C9))
Αυτός ο τύπος επιδεικνύει την προεπιλεγμένη συμπεριφορά - διαβάζει τους συνδυασμένους πίνακες οριζόντια από αριστερά προς τα δεξιά, όπως φαίνεται στη στήλη E της παρακάτω εικόνας.
Για να διαβάσετε τις τιμές κάθετα από πάνω προς τα κάτω, θέτετε το 3ο όρισμα του TOCOL σε TRUE:
=TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)
Προσέξτε ότι, σε αυτή την περίπτωση, ο τύπος επιστρέφει πρώτα τιμές από τη στήλη A και των δύο πινάκων, στη συνέχεια από τη στήλη B κ.ο.κ. Ο λόγος είναι ότι η TOCOL σαρώνει έναν ενιαίο στοιβαγμένο πίνακα και όχι τις αρχικές μεμονωμένες σειρές.
Εάν η επιχειρησιακή σας λογική απαιτεί στοίβαξη των αρχικών σειρών οριζόντια και όχι κάθετα, τότε χρησιμοποιήστε τη συνάρτηση HSTACK αντί της VSTACK.
Για να προσαρτήσετε κάθε επόμενο πίνακα στα δεξιά του προηγούμενου πίνακα και να διαβάσετε τους συνδυασμένους πίνακες οριζόντια, ο τύπος είναι:
=TOCOL(HSTACK(A2:C4, A8:C10))
Για να προσθέσετε κάθε επόμενο πίνακα στα δεξιά του προηγούμενου πίνακα και να σαρώσετε τους συνδυασμένους πίνακες κάθετα, ο τύπος είναι:
=TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)
Εξαγωγή μοναδικών τιμών από ένα εύρος πολλών στηλών
Η συνάρτηση UNIQUE του Excel μπορεί εύκολα να βρει μοναδικές τιμές σε μία στήλη ή γραμμή, καθώς και να επιστρέψει μοναδικές γραμμές, αλλά δεν μπορεί να εξάγει μοναδικές τιμές από έναν πίνακα πολλών στηλών. Η λύση είναι να τη χρησιμοποιήσετε μαζί με τη συνάρτηση TOCOL.
Για παράδειγμα, για να εξαγάγετε όλες τις διαφορετικές (διακριτές) τιμές από το εύρος A2:C7, ο τύπος είναι:
=UNIQUE(TOCOL(A2:C7))
Επιπλέον, μπορείτε να τυλίξετε τον παραπάνω τύπο στη συνάρτηση SORT για να τακτοποιήσετε τον επιστρεφόμενο πίνακα με αλφαβητική σειρά:
=SORT(UNIQUE(TOCOL(A2:C7)))
Πώς να μετατρέψετε περιοχή σε στήλη στο Excel 365 - 2010
Στις εκδόσεις του Excel όπου η λειτουργία TOCOL δεν υποστηρίζεται, υπάρχουν δύο εναλλακτικοί τρόποι για να μετατρέψετε μια σειρά κελιών σε στήλη. Οι λύσεις αυτές είναι αρκετά δύσκολες, αλλά ούτως ή άλλως λειτουργούν.
Για να διαβάσετε το εύρος ανά γραμμή:
INDEX( εύρος , QUOTIENT(ROW(A1)-1, COLUMNS( εύρος ))+1, MOD(ROW(A1)-1, COLUMNS( εύρος ))+1)Για να διαβάσετε το εύρος ανά στήλη:
INDEX( εύρος , MOD(ROW(A1)-1, ROWS( εύρος ))+1, ΠΗΛΊΚΟ(ΓΡΑΜΜΉ(A1)-1, ΓΡΑΜΜΈΣ( εύρος ))+1)Για το σύνολο δεδομένων του δείγματός μας, οι τύποι έχουν ως εξής:
Για να σαρώσετε την περιοχή οριζόντια από αριστερά προς τα δεξιά :
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Ο τύπος αυτός είναι ισοδύναμος με τη συνάρτηση TOCOL με το 3ο όρισμα να έχει τεθεί σε FALSE ή να παραλείπεται:
=TOCOL(A2:C5)
Για να σαρώσετε την περιοχή κάθετα από πάνω προς τα κάτω :
=INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)
Ο τύπος αυτός είναι συγκρίσιμος με τη συνάρτηση TOCOL με το 3ο όρισμα να έχει την τιμή TRUE:
=TOCOL(A2:C5, ,TRUE)
Σε αντίθεση με το TOCOL, οι εναλλακτικοί τύποι πρέπει να εισάγονται σε κάθε κελί όπου θέλετε να εμφανίζονται τα αποτελέσματα. Στην περίπτωσή μας, οι τύποι πηγαίνουν στα κελιά E2 (ανά γραμμή) και G2 (ανά στήλη) και στη συνέχεια αντιγράφονται στη γραμμή 13.
Εάν οι τύποι αντιγραφούν σε περισσότερες γραμμές από όσες χρειάζονται, θα εμφανιστεί ένα σφάλμα #REF! στα "επιπλέον" κελιά. Για να αποτρέψετε αυτό το φαινόμενο, μπορείτε να φωλιάσετε τους τύπους στη συνάρτηση IFERROR ως εξής:
=IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")
Παρατηρήστε ότι για να αντιγραφούν σωστά οι τύποι, κλειδώνουμε την περιοχή χρησιμοποιώντας απόλυτες αναφορές κελιών ($A$2:$C$5). Αντ' αυτού, μπορείτε να χρησιμοποιήσετε μια περιοχή με όνομα.
Πώς λειτουργούν αυτοί οι τύποι
Ακολουθεί μια λεπτομερής ανάλυση του πρώτου τύπου που ταξινομεί τα κελιά ανά γραμμή:
=INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
Η ιδέα είναι να χρησιμοποιήσετε τη συνάρτηση INDEX για να επιστρέψετε την τιμή ενός συγκεκριμένου κελιού με βάση τους σχετικούς αριθμούς γραμμής και στήλης στην περιοχή.
Το αριθμός σειράς υπολογίζεται με αυτόν τον συνδυασμό:
QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
Η QUOTIENT επιστρέφει το ακέραιο τμήμα μιας διαίρεσης.
Για το αριθμητής , χρησιμοποιείτε το ROW(A1)-1, το οποίο επιστρέφει έναν αύξοντα αριθμό από το 0 στο E2 (το πρώτο κελί όπου εισάγεται ο τύπος) έως το 11 στο E13 (το τελευταίο κελί όπου εισάγεται ο τύπος).
Το παρονομαστής brough by COLUMNS($A$2:$C$5)) είναι σταθερό και ισούται με τον αριθμό των στηλών της περιοχής σας (3 στην περίπτωσή μας).
Τώρα, αν ελέγξετε το αποτέλεσμα του QUOTIENT για τα 3 πρώτα κελιά (E2:E4), θα δείτε ότι είναι ίσο με 0 (επειδή το ακέραιο μέρος της διαίρεσης είναι μηδέν). Προσθέτοντας 1 προκύπτει ο αριθμός γραμμής 1.
Για τα επόμενα 3 κελιά (E5:E5), το QUOTIENT επιστρέφει 1, και η πράξη +1 παρέχει τον αριθμό γραμμής 2. Και ούτω καθεξής.
Με άλλα λόγια, αυτό το μέρος του τύπου δημιουργεί μια επαναλαμβανόμενη ακολουθία αριθμών, όπως 1,1,1,1,2,2,2,2,3,3,3,4,4,4,4,... Κάθε αριθμός επαναλαμβάνεται τόσες φορές όσες είναι οι στήλες στην περιοχή σας.
Για τον υπολογισμό του αριθμός στήλης , δημιουργείτε μια κατάλληλη ακολουθία αριθμών χρησιμοποιώντας τη λειτουργία MOD:
MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1
Δεδομένου ότι υπάρχουν 3 στήλες στην περιοχή μας (A2:C5), η ακολουθία πρέπει να είναι 1,2,3,1,2,3,...
Η συνάρτηση MOD επιστρέφει το υπόλοιπο μετά τη διαίρεση.
Στο E2, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)
γίνεται
MOD(1-1, 3)+1)
και επιστρέφει 1.
Στο E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)
γίνεται
MOD(2-1, 3)+1)
και επιστρέφει 2.
Με τον καθορισμό των αριθμών γραμμής και στήλης, το INDEX δεν αντιμετωπίζει κανένα πρόβλημα με την άντληση της απαιτούμενης τιμής.
Στο E2, το INDEX($A$2:$C$5, 1, 1) επιστρέφει την τιμή από την 1η γραμμή και την 1η στήλη της αναφερόμενης περιοχής, δηλαδή από το κελί A2.
Στο E3, το INDEX($A$2:$C$5, 1, 2) επιστρέφει την τιμή από την 1η γραμμή και τη 2η στήλη, δηλαδή από το κελί B2.
Και ούτω καθεξής.
Ο δεύτερος τύπος που σαρώνει το εύρος ανά στήλη, λειτουργεί με παρόμοιο τρόπο. Η διαφορά είναι ότι χρησιμοποιεί MOD για να πάρει τον αριθμό γραμμής και QUOTIENT για να πάρει τον αριθμό στήλης.
Η λειτουργία TOCOL δεν λειτουργεί
Εάν η συνάρτηση TOCOL εμφανίσει σφάλμα, το πιθανότερο είναι να οφείλεται σε έναν από αυτούς τους λόγους:
Το TOCOL δεν υποστηρίζεται στο Excel σας
Όταν λαμβάνετε ένα σφάλμα #NAME?, το πρώτο πράγμα που πρέπει να ελέγξετε είναι η σωστή ορθογραφία του ονόματος της συνάρτησης. Εάν το όνομα είναι σωστό, αλλά το σφάλμα παραμένει, η συνάρτηση δεν είναι διαθέσιμη στην έκδοση του Excel σας. Σε αυτή την περίπτωση, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε μια εναλλακτική λύση TOCOL.
Η συστοιχία είναι πολύ μεγάλη
Το σφάλμα #NUM υποδεικνύει ότι ο πίνακας δεν μπορεί να χωρέσει σε μια στήλη. Μια τυπική περίπτωση είναι όταν αναφέρεστε σε ολόκληρες στήλες ή γραμμές.
Δεν υπάρχουν αρκετά κενά κελιά
Όταν εμφανίζεται το σφάλμα #SPILL, ελέγξτε ότι η στήλη στην οποία έχει εισαχθεί ο τύπος έχει αρκετά κενά κελιά για να γεμίσει με τα αποτελέσματα. Εάν τα κελιά είναι οπτικά κενά, βεβαιωθείτε ότι δεν υπάρχουν κενά και άλλοι μη εκτυπωτικοί χαρακτήρες σε αυτά. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Πώς να διορθώσετε το σφάλμα #SPILL στο Excel.
Έτσι μπορείτε να χρησιμοποιήσετε τη συνάρτηση TOCOL στο Excel 365 και εναλλακτικές λύσεις σε προηγούμενες εκδόσεις για να μετατρέψετε έναν δισδιάστατο πίνακα σε μία μόνο στήλη. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!
Βιβλίο ασκήσεων
Λειτουργία TOCOL του Excel - παραδείγματα τύπων (.xlsx αρχείο)