Πίνακας περιεχομένων
Το σεμινάριο δείχνει διάφορους τρόπους για να αλλάξετε γραμμές σε στήλες στο Excel: τύπους, κώδικα VBA και ένα ειδικό εργαλείο.
Η μετατόπιση δεδομένων στο Excel είναι μια εργασία που είναι οικεία σε πολλούς χρήστες. Πολύ συχνά κατασκευάζετε έναν πολύπλοκο πίνακα μόνο και μόνο για να συνειδητοποιήσετε ότι είναι απολύτως λογικό να τον περιστρέψετε για καλύτερη ανάλυση ή παρουσίαση δεδομένων σε γραφήματα.
Σε αυτό το άρθρο, θα βρείτε διάφορους τρόπους μετατροπής γραμμών σε στήλες (ή στηλών σε γραμμές), όπως κι αν το λέτε, είναι το ίδιο πράγμα : ) Αυτές οι λύσεις λειτουργούν σε όλες τις εκδόσεις του Excel 2010 έως το Excel 365, καλύπτουν πολλά πιθανά σενάρια και εξηγούν τα πιο τυπικά λάθη.
Μετατροπή γραμμών σε στήλες στο Excel χρησιμοποιώντας την Ειδική επικόλληση
Ας υποθέσουμε ότι έχετε ένα σύνολο δεδομένων παρόμοιο με αυτό που βλέπετε στο πάνω μέρος των παρακάτω γραφικών. Τα ονόματα των χωρών είναι οργανωμένα σε στήλες, αλλά ο κατάλογος των χωρών είναι πολύ μεγάλος, οπότε καλύτερα να αλλάξουμε τις στήλες σε γραμμές για να χωρέσει ο πίνακας στην οθόνη:
Για να αλλάξετε γραμμές σε στήλες, εκτελέστε τα εξής βήματα:
- Επιλογή των αρχικών δεδομένων. Για να επιλέξετε γρήγορα ολόκληρο τον πίνακα, δηλαδή όλα τα κελιά με δεδομένα σε ένα λογιστικό φύλλο, πατήστε Ctrl + Home και στη συνέχεια Ctrl + Shift + End .
- Αντιγράψτε τα επιλεγμένα κελιά είτε κάνοντας δεξί κλικ στην επιλογή και επιλέγοντας Αντιγραφή από το μενού περιβάλλοντος ή πατώντας Ctrl + C .
- Επιλέξτε το πρώτο κελί της περιοχής προορισμού.
Βεβαιωθείτε ότι επιλέγετε ένα κελί που βρίσκεται εκτός της περιοχής που περιέχει τα αρχικά σας δεδομένα, έτσι ώστε οι περιοχές αντιγραφής και επικόλλησης να μην επικαλύπτονται. Για παράδειγμα, αν έχετε επί του παρόντος 4 στήλες και 10 γραμμές, ο μετατρεπόμενος πίνακας θα έχει 10 στήλες και 4 γραμμές.
- Κάντε δεξί κλικ στο κελί προορισμού και επιλέξτε Ειδική επικόλληση από το μενού περιβάλλοντος και, στη συνέχεια, επιλέξτε Transpose .
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Πώς να χρησιμοποιήσετε την Ειδική επικόλληση στο Excel.
Σημείωση. Εάν τα δεδομένα της πηγής σας περιέχουν τύπους, βεβαιωθείτε ότι χρησιμοποιείτε σωστά τις σχετικές και τις απόλυτες αναφορές ανάλογα με το αν θα πρέπει να προσαρμοστούν ή να παραμείνουν κλειδωμένες σε συγκεκριμένα κελιά.
Όπως μόλις είδατε, η λειτουργία Ειδική επικόλληση σας επιτρέπει να εκτελέσετε μετασχηματισμούς από γραμμή σε στήλη (ή από στήλη σε γραμμή) κυριολεκτικά μέσα σε λίγα δευτερόλεπτα. Αυτή η μέθοδος αντιγράφει επίσης τη μορφοποίηση των αρχικών σας δεδομένων, γεγονός που προσθέτει ένα ακόμη επιχείρημα υπέρ της.
Ωστόσο, η προσέγγιση αυτή έχει δύο μειονεκτήματα που το εμποδίζουν να χαρακτηριστεί ως τέλεια λύση για την αντιμετάθεση δεδομένων στο Excel:
- Δεν είναι κατάλληλο για την περιστροφή πλήρως λειτουργικών πινάκων του Excel. Αν αντιγράψετε ολόκληρο τον πίνακα και στη συνέχεια ανοίξετε το Ειδική επικόλληση διαλόγου, θα βρείτε το Transpose Σε αυτή την περίπτωση, πρέπει είτε να αντιγράψετε τον πίνακα χωρίς επικεφαλίδες στηλών είτε να τον μετατρέψετε πρώτα σε εύρος.
- Ειδική επικόλληση >, Transpose δεν συνδέει τον νέο πίνακα με τα αρχικά δεδομένα, οπότε είναι κατάλληλη μόνο για μετατροπές μίας χρήσης. Κάθε φορά που αλλάζουν τα δεδομένα της πηγής, θα πρέπει να επαναλαμβάνετε τη διαδικασία και να περιστρέφετε εκ νέου τον πίνακα. Κανείς δεν θα ήθελε να σπαταλά το χρόνο του για να αλλάζει τις ίδιες γραμμές και στήλες ξανά και ξανά, σωστά;
Πώς να μεταθέσετε έναν πίνακα και να τον συνδέσετε με τα αρχικά δεδομένα
Ας δούμε πώς μπορείτε να αλλάξετε γραμμές σε στήλες χρησιμοποιώντας το γνωστό Ειδική επικόλληση τεχνική, αλλά συνδέστε τον πίνακα που προκύπτει με το αρχικό σύνολο δεδομένων. Το καλύτερο με αυτή την προσέγγιση είναι ότι κάθε φορά που αλλάζετε τα δεδομένα στον πηγαίο πίνακα, ο πίνακας με την αντιστροφή θα αντικατοπτρίζει τις αλλαγές και θα ενημερώνεται αναλόγως.
- Αντιγράψτε τις γραμμές που θέλετε να μετατρέψετε σε στήλες (ή τις στήλες που θέλετε να μετατραπούν σε γραμμές).
- Επιλέξτε ένα κενό κελί στο ίδιο ή σε άλλο φύλλο εργασίας.
- Ανοίξτε το Ειδική επικόλληση όπως εξηγήθηκε στο προηγούμενο παράδειγμα και κάντε κλικ στο κουμπί Επικόλληση συνδέσμου στην κάτω αριστερή γωνία:
Θα έχετε ένα αποτέλεσμα παρόμοιο με αυτό:
Αυτό θα μετατρέψει το τραπέζι σας σε κάτι λίγο τρομακτικό, όπως βλέπετε στο παρακάτω στιγμιότυπο, αλλά μην πανικοβάλλεστε, μόλις 2 βήματα ακόμα και θα πετύχετε το επιθυμητό αποτέλεσμα.
Αυτή είναι μια λίγο μακρά αλλά κομψή λύση, έτσι δεν είναι; Το μόνο μειονέκτημα αυτής της προσέγγισης είναι ότι η αρχική μορφοποίηση χάνεται κατά τη διαδικασία και θα πρέπει να την επαναφέρετε χειροκίνητα (θα σας δείξω έναν γρήγορο τρόπο για να το κάνετε αυτό στη συνέχεια αυτού του σεμιναρίου).
Πώς να αντιμεταθέσετε στο Excel χρησιμοποιώντας τύπους
Ένας ταχύτερος τρόπος για να αλλάξετε δυναμικά στήλες σε γραμμές στο Excel είναι με τη χρήση του τύπου TRANSPOSE ή του τύπου INDEX/ADDRESS. Όπως και στο προηγούμενο παράδειγμα, αυτοί οι τύποι διατηρούν επίσης τις συνδέσεις με τα αρχικά δεδομένα, αλλά λειτουργούν λίγο διαφορετικά.
Αλλαγή γραμμών σε στήλες στο Excel χρησιμοποιώντας τη λειτουργία TRANSPOSE
Όπως υποδηλώνει το όνομά της, η συνάρτηση TRANSPOSE είναι ειδικά σχεδιασμένη για την αντιμετάθεση δεδομένων στο Excel:
=TRANSPOSE(array)Σε αυτό το παράδειγμα, θα μετατρέψουμε έναν άλλο πίνακα που απαριθμεί τις πολιτείες των ΗΠΑ με βάση τον πληθυσμό τους:
- Μετρήστε τον αριθμό των γραμμών και των στηλών στον αρχικό σας πίνακα και επιλέξτε τον ίδιο αριθμό κενών κελιών, αλλά προς την άλλη κατεύθυνση.
Για παράδειγμα, ο πίνακας του δείγματός μας έχει 7 στήλες και 6 γραμμές, συμπεριλαμβανομένων των επικεφαλίδων. Δεδομένου ότι η συνάρτηση TRANSPOSE θα αλλάξει τις στήλες σε γραμμές, επιλέγουμε ένα εύρος 6 στηλών και 7 γραμμών.
- Με επιλεγμένα τα κενά κελιά, πληκτρολογήστε αυτόν τον τύπο:
=TRANSPOSE(A1:G6)
- Δεδομένου ότι ο τύπος μας πρέπει να εφαρμοστεί σε πολλαπλά κελιά, πατήστε Ctrl + Shift + Enter για να τον μετατρέψετε σε τύπο συστοιχίας.
Ορίστε, οι στήλες μετατρέπονται σε γραμμές, όπως ακριβώς θέλαμε:
Πλεονεκτήματα της λειτουργίας TRANSPOSE:
Το κύριο πλεονέκτημα της χρήσης της λειτουργίας TRANSPOSE είναι ότι ο περιστρεφόμενος πίνακας διατηρεί τη σύνδεση με τον πηγαίο πίνακα και κάθε φορά που αλλάζετε τα δεδομένα της πηγής, ο μεταφερόμενος πίνακας θα αλλάζει ανάλογα.
Αδυναμίες της λειτουργίας TRANSPOSE:
- Η αρχική μορφοποίηση του πίνακα δεν αποθηκεύεται στον μετασχηματισμένο πίνακα, όπως βλέπετε στο παραπάνω στιγμιότυπο οθόνης.
- Εάν υπάρχουν κενά κελιά στον αρχικό πίνακα, τα μετατοπισμένα κελιά θα περιέχουν 0. Για να το διορθώσετε αυτό, χρησιμοποιήστε τη λειτουργία TRANSPOSE σε συνδυασμό με τη συνάρτηση IF, όπως εξηγείται σε αυτό το παράδειγμα: Πώς να κάνετε μετατόπιση χωρίς μηδενικά.
- Δεν μπορείτε να επεξεργαστείτε κανένα κελί στον περιστρεφόμενο πίνακα, επειδή εξαρτάται σε μεγάλο βαθμό από τα δεδομένα προέλευσης. Αν προσπαθήσετε να αλλάξετε κάποια τιμή κελιού, θα καταλήξετε στο σφάλμα "Δεν μπορείτε να αλλάξετε μέρος ενός πίνακα".
Εν κατακλείδι, όσο καλή και εύχρηστη και αν είναι η λειτουργία TRANSPOSE, σίγουρα στερείται ευελιξίας και επομένως μπορεί να μην είναι ο καλύτερος τρόπος σε πολλές περιπτώσεις.
Για περισσότερες πληροφορίες, ανατρέξτε στη λειτουργία TRANSPOSE του Excel με παραδείγματα.
Μετατροπή γραμμής σε στήλη με τις συναρτήσεις INDIRECT και ADDRESS
Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε έναν συνδυασμό δύο συναρτήσεων, ο οποίος είναι λίγο δύσκολος. Έτσι, ας περιστρέψουμε έναν μικρότερο πίνακα ώστε να μπορέσουμε να επικεντρωθούμε καλύτερα στον τύπο.
Ας υποθέσουμε ότι έχετε δεδομένα σε 4 στήλες (A - D) και 5 γραμμές (1 - 5):
Για να μετατρέψετε τις στήλες σε γραμμές, κάντε τα εξής:
- Εισάγετε τον παρακάτω τύπο στο αριστερότερο κελί της περιοχής προορισμού, π.χ. Α7, και πατήστε το πλήκτρο Enter:
=INDIRECT(ADDRESS(COLUMN(A1),ROW(A1)))
- Αντιγράψτε τον τύπο προς τα δεξιά και προς τα κάτω σε όσες γραμμές και στήλες χρειάζεται, σύροντας τον μικρό μαύρο σταυρό στην κάτω δεξιά γωνία των επιλεγμένων κελιών:
Αυτό είναι! Στον νέο πίνακα που δημιουργήσατε, όλες οι στήλες έχουν μετατραπεί σε γραμμές.
Εάν τα δεδομένα σας ξεκινούν σε κάποια γραμμή εκτός του 1 και σε κάποια στήλη εκτός του Α, θα πρέπει να χρησιμοποιήσετε έναν λίγο πιο σύνθετο τύπο:
=INDIRECT(ADDRESS(COLUMN(A1) - COLUMN($A$1) + ROW($A$1), ROW(A1) - ROW($A$1) + COLUMN($A$1))))
Όπου Α1 είναι το πάνω αριστερά κελί του πηγαίου σας πίνακα. Επίσης, λάβετε υπόψη σας τη χρήση απόλυτων και σχετικών αναφορών κελιών.
Ωστόσο, τα μεταφερόμενα κελιά φαίνονται πολύ απλά και βαρετά, σε σύγκριση με τα αρχικά δεδομένα:
Αλλά μην απογοητεύεστε, αυτό το πρόβλημα μπορεί να διορθωθεί εύκολα. Για να επαναφέρετε την αρχική μορφοποίηση, κάντε τα εξής:
- Αντιγράψτε τον αρχικό πίνακα.
- Επιλέξτε τον πίνακα που προκύπτει.
- Κάντε δεξί κλικ στον πίνακα που προκύπτει και επιλέξτε Επιλογές επικόλλησης >, Μορφοποίηση .
Πλεονεκτήματα : Αυτός ο τύπος παρέχει έναν πιο ευέλικτο τρόπο μετατροπής γραμμών σε στήλες στο Excel. Επιτρέπει την πραγματοποίηση οποιωνδήποτε αλλαγών στον μετατοπισμένο πίνακα επειδή χρησιμοποιείτε έναν κανονικό τύπο και όχι έναν τύπο συστοιχίας.
Ελλείψεις : Μπορώ να δω μόνο ένα - η μορφοποίηση των τακτικών δεδομένων έχει χαθεί. Αν και, μπορείτε να την επαναφέρετε γρήγορα, όπως φαίνεται παραπάνω.
Πώς λειτουργεί αυτή η φόρμουλα
Τώρα που ξέρετε πώς να χρησιμοποιείτε τον συνδυασμό INDIRECT / ADDRESS, ίσως θελήσετε να καταλάβετε τι ακριβώς κάνει ο τύπος.
Όπως υποδηλώνει το όνομά της, η συνάρτηση INDIRECT, χρησιμοποιείται για την έμμεση αναφορά σε ένα κελί. Αλλά η πραγματική δύναμη της INDIRECT είναι ότι μπορεί να μετατρέψει οποιαδήποτε συμβολοσειρά σε αναφορά, συμπεριλαμβανομένης μιας συμβολοσειράς που έχετε δημιουργήσει χρησιμοποιώντας άλλες συναρτήσεις και τις τιμές άλλων κελιών. Και αυτό ακριβώς θα κάνουμε. Αν παρακολουθείτε μέχρι εδώ, θα καταλάβετε όλα τα υπόλοιπα με ευκολία : )
Όπως θυμάστε, έχουμε χρησιμοποιήσει 3 ακόμη συναρτήσεις στον τύπο - ADDRESS, COLUMN και ROW.
Η συνάρτηση ADDRESS λαμβάνει τη διεύθυνση κελιού με τους αριθμούς γραμμής και στήλης που καθορίζετε, αντίστοιχα. Παρακαλούμε να θυμάστε τη σειρά: πρώτη - γραμμή, δεύτερη - στήλη.
Στον τύπο μας, παρέχουμε τις συντεταγμένες με την αντίστροφη σειρά, και αυτό είναι που πραγματικά κάνει το κόλπο! Με άλλα λόγια, αυτό το μέρος του τύπου ADDRESS(COLUMN(A1),ROW(A1)) ανταλλάσσει τις γραμμές με τις στήλες, δηλαδή παίρνει έναν αριθμό στήλης και τον μετατρέπει σε αριθμό γραμμής, στη συνέχεια παίρνει έναν αριθμό γραμμής και τον μετατρέπει σε αριθμό στήλης.
Τέλος, η συνάρτηση INDIRECT εξάγει τα περιστρεφόμενα δεδομένα. Τίποτα το φοβερό, έτσι δεν είναι;
Μετατόπιση δεδομένων στο Excel χρησιμοποιώντας μακροεντολή VBA
Για να αυτοματοποιήσετε τη μετατροπή γραμμών σε στήλες στο Excel, μπορείτε να χρησιμοποιήσετε την ακόλουθη μακροεντολή:
Sub TransposeColumnsRows() Dim SourceRange As Range Dim DestRange As Range Set SourceRange = Application.InputBox(Prompt:= "Please select the range to transpose" , Title:= "Transpose Rows to Columns" , Type :=8) Set DestRange = Application.InputBox(Prompt:= "Select the upper left cell of the destination range" , Title:= "Transpose Rows to Columns" , Type :=8) SourceRange.Copy DestRange. SelectSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= False , Transpose:= True Application.CutCopyMode = False End SubΓια να προσθέσετε μια μακροεντολή στο φύλλο εργασίας σας, ακολουθήστε τις οδηγίες που περιγράφονται στην ενότητα Πώς να εισαγάγετε και να εκτελέσετε κώδικα VBA στο Excel.
Σημείωση. Η αντιμετάθεση με τη VBA, έχει περιορισμό 65536 στοιχείων. Σε περίπτωση που ο πίνακάς σας υπερβαίνει αυτό το όριο, τα επιπλέον δεδομένα θα απορριφθούν σιωπηλά.
Πώς να χρησιμοποιήσετε τη μακροεντολή για να μετατρέψετε γραμμή σε στήλη
Με τη μακροεντολή τοποθετημένη στο βιβλίο εργασίας σας, εκτελέστε τα παρακάτω βήματα για να περιστρέψετε τον πίνακα:
- Ανοίξτε το φύλλο εργασίας-στόχο, πατήστε Alt + F8 , επιλέξτε το TransposeColumnsRows μακροεντολή, και κάντε κλικ στο Εκτέλεση .
Απολαύστε το αποτέλεσμα :)
Εναλλαγή στηλών και γραμμών με το εργαλείο Transpose
Αν χρειάζεται να εκτελείτε μετασχηματισμούς από γραμμή σε στήλη σε τακτική βάση, ίσως πραγματικά να ψάχνετε για έναν ταχύτερο και απλούστερο τρόπο. Ευτυχώς, έχω έναν τέτοιο τρόπο στο Excel μου, και το ίδιο κάνουν και άλλοι χρήστες της Ultimate Suite μας :)
Επιτρέψτε μου να σας δείξω πώς να αλλάζετε γραμμές και στήλες στο Excel κυριολεκτικά με μερικά κλικ:
- Επιλέξτε οποιοδήποτε μεμονωμένο κελί μέσα στον πίνακά σας, μεταβείτε στο παράθυρο Ablebits tab>, Μετασχηματισμός και κάντε κλικ στο κουμπί Transpose κουμπί.
Αν θέλετε να Επικόλληση τιμών μόνο ή Δημιουργία συνδέσμων προς τα δεδομένα πηγής για να αναγκάσετε τον περιστρεφόμενο πίνακα να ενημερώνεται αυτόματα με κάθε αλλαγή που κάνετε στον αρχικό πίνακα, επιλέξτε την αντίστοιχη επιλογή.
Έγινε! Ο πίνακας μετατοπίζεται, η μορφοποίηση διατηρείται, δεν απαιτούνται περαιτέρω χειρισμοί:
Αν είστε περίεργοι να δοκιμάσετε αυτό και 70+ άλλα επαγγελματικά εργαλεία για το Excel, σας προσκαλώ να κατεβάσετε μια δοκιμαστική έκδοση της Ultimate Suite. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!