Συνάρτηση TEXTSPLIT στο Excel: διαχωρισμός συμβολοσειρών κειμένου με διαχωριστικό

  • Μοιραστείτε Αυτό
Michael Brown

Το σεμινάριο δείχνει πώς να χρησιμοποιείτε την ολοκαίνουργια συνάρτηση TEXTSPLIT για να χωρίζετε συμβολοσειρές στο Excel 365 με οποιοδήποτε διαχωριστικό που καθορίζετε.

Μπορεί να υπάρξουν διάφορες καταστάσεις στις οποίες χρειάζεται να χωρίσετε κελιά στο Excel. Σε προηγούμενες εκδόσεις, είχαμε ήδη εξοπλιστεί με μια σειρά από μέσα για την επίτευξη της εργασίας αυτής, όπως το Text to Columns και το Fill Flash. Τώρα, έχουμε επίσης μια ειδική λειτουργία γι' αυτό, το TEXTSPLIT, που μπορεί να χωρίσει μια συμβολοσειρά σε πολλαπλά κελιά σε στήλες ή/και γραμμές με βάση τις παραμέτρους που καθορίζετε.

    Λειτουργία Excel TEXTSPLIT

    Η συνάρτηση TEXTSPLIT του Excel χωρίζει τις συμβολοσειρές κειμένου με βάση ένα δεδομένο διαχωριστικό σε στήλες ή/και γραμμές. Το αποτέλεσμα είναι ένας δυναμικός πίνακας που διαχέεται αυτόματα σε πολλαπλά κελιά.

    Η συνάρτηση δέχεται έως και 6 ορίσματα, εκ των οποίων μόνο τα δύο πρώτα είναι απαραίτητα.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    κείμενο (υποχρεωτικό) - το κείμενο προς διαχωρισμό. Μπορεί να δοθεί ως συμβολοσειρά ή αναφορά κελιού.

    col_delimiter (υποχρεωτικό) - ένας χαρακτήρας (ή χαρακτήρες) που υποδεικνύει πού θα χωριστεί το κείμενο στις στήλες. Αν παραλειφθεί, row_delimiter πρέπει να οριστεί.

    row_delimiter (προαιρετικό) - ένας χαρακτήρας (ή χαρακτήρες) που υποδεικνύει πού θα χωριστεί το κείμενο στις γραμμές.

    ignore_empty (προαιρετικό) - καθορίζει αν θα αγνοούνται κενές τιμές ή όχι:

    • FALSE (προεπιλογή) - δημιουργεί κενά κελιά για διαδοχικά οριοθέτες χωρίς τιμή ενδιάμεσα.
    • TRUE - αγνοεί τις κενές τιμές, δηλαδή δεν δημιουργεί κενά κελιά για δύο ή περισσότερα διαδοχικά οριοθέτες.

    match_mode (προαιρετικό) - καθορίζει την ευαισθησία στην πεζότητα για το διαχωριστικό. Ενεργοποιημένο από προεπιλογή.

    • 0 (προεπιλογή) - ευαισθησία στη πεζότητα
    • 1 - χωρίς ευαισθησία στην πεζότητα

    pad_with (προαιρετικό) - μια τιμή που χρησιμοποιείται στη θέση των τιμών που λείπουν σε δισδιάστατους πίνακες. Η προεπιλογή είναι ένα σφάλμα #N/A.

    Για παράδειγμα, για να διαιρέσετε μια συμβολοσειρά κειμένου στο Α2 σε πολλαπλά κελιά χρησιμοποιώντας ένα κόμμα και ένα κενό ως διαχωριστικό, ο τύπος είναι ο εξής:

    =TEXTSPLIT(A2, ", ")

    Διαθεσιμότητα TEXTSPLIT

    Η λειτουργία TEXTSPLIT είναι διαθέσιμη μόνο στο Excel για το Microsoft 365 (Windows και Mac) και στο Excel για το διαδίκτυο.

    Συμβουλές:

    • Στις εκδόσεις του Excel όπου η λειτουργία TEXTSPLIT δεν είναι διαθέσιμη (εκτός του Excel 365), μπορείτε να χρησιμοποιήσετε τον οδηγό Κείμενο σε στήλες για να χωρίσετε τα κελιά.
    • Για να εκτελέσετε την αντίστροφη εργασία, δηλαδή για να ενώσετε τα περιεχόμενα πολλών κελιών σε ένα χρησιμοποιώντας ένα συγκεκριμένο διαχωριστικό, η συνάρτηση TEXTJOIN είναι η κατάλληλη.

    Βασικός τύπος TEXTSPLIT για να χωρίσετε ένα κελί στο Excel

    Για αρχή, ας δούμε πώς μπορείτε να χρησιμοποιήσετε έναν τύπο TEXTSPLIT στην απλούστερη μορφή του για να χωρίσετε μια συμβολοσειρά κειμένου με ένα συγκεκριμένο διαχωριστικό.

    Διαχωρίστε ένα κελί οριζόντια σε όλες τις στήλες

    Για να διαιρέσετε τα περιεχόμενα ενός συγκεκριμένου κελιού σε πολλαπλές στήλες, δώστε μια αναφορά στο κελί που περιέχει την αρχική συμβολοσειρά για την πρώτη ( κείμενο ) όρισμα και το διαχωριστικό που σηματοδοτεί το σημείο στο οποίο πρέπει να γίνει ο διαχωρισμός για το δεύτερο ( col_delimiter ) επιχείρημα.

    Για παράδειγμα, για να διαχωρίσετε τη συμβολοσειρά στο Α2 οριζόντια με κόμμα, ο τύπος είναι:

    =TEXTSPLIT(A2, ",")

    Για το διαχωριστικό, χρησιμοποιούμε ένα κόμμα που περικλείεται σε διπλά εισαγωγικά (",").

    Ως αποτέλεσμα, κάθε στοιχείο που διαχωρίζεται με κόμμα μπαίνει σε ξεχωριστή στήλη:

    Χωρίστε ένα κελί κάθετα σε όλες τις γραμμές

    Για να χωρίσετε το κείμενο σε πολλαπλές γραμμές, το τρίτο όρισμα ( row_delimiter ) είναι το σημείο στο οποίο τοποθετείτε τον διαχωριστή. Το δεύτερο όρισμα ( col_delimiter ) παραλείπεται σε αυτή την περίπτωση.

    Για παράδειγμα, για να διαχωρίσετε τις τιμές στην Α2 σε διαφορετικές γραμμές, ο τύπος είναι ο εξής:

    =TEXTSPLIT(A2, ,",")

    Σημειώστε ότι, και στις δύο περιπτώσεις, ο τύπος εισάγεται μόνο σε ένα κελί (C2). Στα γειτονικά κελιά, οι επιστρεφόμενες τιμές διαχέονται αυτόματα. Ο πίνακας που προκύπτει (ο οποίος καλείται περιοχή διαρροής) επισημαίνεται με μπλε περίγραμμα, υποδεικνύοντας ότι όλα όσα βρίσκονται μέσα σε αυτόν υπολογίζονται από τον τύπο στο πάνω αριστερό κελί.

    Διαχωρισμός κειμένου με υποσέλιδο

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

    Για παράδειγμα, για να διαχωρίσετε το κείμενο στην Α2 σε πολλαπλές στήλες με ένα κόμμα και ένα κενό, χρησιμοποιήστε τη συμβολοσειρά ", " για το col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Αυτός ο τύπος πηγαίνει στο Β2 και στη συνέχεια τον αντιγράφετε προς τα κάτω σε όσα κελιά χρειάζεται.

    Διαχωρισμός συμβολοσειράς σε στήλες και γραμμές ταυτόχρονα

    Για να χωρίσετε μια συμβολοσειρά κειμένου σε γραμμές και στήλες κάθε φορά, ορίστε και τα δύο διαχωριστικά στον τύπο TEXTSPLIT.

    Για παράδειγμα, για να χωρίσουμε τη συμβολοσειρά κειμένου στην Α2 σε στήλες και γραμμές, παρέχουμε:

    • Το σύμβολο ισότητας ("=") για col_delimiter
    • Ένα κόμμα και ένα κενό (", ") για row_delimiter

    Ο πλήρης τύπος έχει την εξής μορφή:

    =TEXTSPLIT(A2, "=", ", ")

    Το αποτέλεσμα είναι ένας δισδιάστατος πίνακας που αποτελείται από 2 στήλες και 3 γραμμές:

    Διαχωρίστε τα κελιά με πολλαπλούς διαχωριστικούς χαρακτήρες

    Για να χειριστείτε πολλαπλά ή ασυνεπή διαχωριστικά στην αρχική συμβολοσειρά, χρησιμοποιήστε μια σταθερά πίνακα όπως {"x", "y", "z"} για το όρισμα διαχωριστικό.

    Στο παρακάτω στιγμιότυπο οθόνης, το κείμενο στο Α2 οριοθετείται τόσο από κόμματα (",") όσο και από άνω και κάτω τελεία (";") με και χωρίς κενά. Για να χωρίσετε τη συμβολοσειρά κάθετα σε γραμμές και με τις 4 παραλλαγές του διαχωριστικού, ο τύπος είναι:

    =TEXTSPLIT(A2, , {",",", ",";",",";"})

    Ή, μπορείτε να συμπεριλάβετε μόνο ένα κόμμα (",") και μια άνω τελεία (";") στον πίνακα και, στη συνέχεια, να αφαιρέσετε τα επιπλέον κενά με τη βοήθεια της συνάρτησης TRIM:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    Διαχωρισμός κειμένου αγνοώντας κενές τιμές

    Εάν η συμβολοσειρά περιέχει δύο ή περισσότερα διαδοχικά διαχωριστικά χωρίς τιμή ανάμεσά τους, μπορείτε να επιλέξετε αν θα αγνοήσετε ή όχι αυτές τις κενές τιμές. Αυτή η συμπεριφορά ελέγχεται από την τέταρτη εντολή ignore_empty παράμετρος, η οποία είναι προεπιλεγμένη σε FALSE.

    Από προεπιλογή, η συνάρτηση TEXTSPLIT δεν αγνοεί τις κενές τιμές. Η προεπιλεγμένη συμπεριφορά λειτουργεί καλά για δομημένα δεδομένα όπως στο παρακάτω παράδειγμα.

    Σε αυτό το δείγμα πίνακα, οι βαθμολογίες λείπουν σε ορισμένες συμβολοσειρές. Ο τύπος TEXTSPLIT με το ignore_empty το όρισμα παραλείπεται ή τίθεται σε FALSE χειρίζεται τέλεια αυτή την περίπτωση, δημιουργώντας ένα κενό κελί για κάθε κενή τιμή.

    =TEXTSPLIT(A2, ", ")

    Ή

    =TEXTSPLIT(A2, ", ", ", FALSE)

    Ως αποτέλεσμα, όλες οι τιμές εμφανίζονται στις κατάλληλες στήλες.

    Σε περίπτωση που οι συμβολοσειρές σας περιέχουν ομοιογενή δεδομένα, μπορεί να είναι λογικό να αγνοήσετε τις κενές τιμές. Για το σκοπό αυτό, ορίστε το ignore_empty σε TRUE ή 1.

    Για παράδειγμα, για να διαιρέσετε t τις παρακάτω συμβολοσειρές τοποθετώντας κάθε δεξιότητα σε ξεχωριστό κελί χωρίς κενά, ο τύπος είναι:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    Στην περίπτωση αυτή, οι τιμές που λείπουν μεταξύ διαδοχικών διαχωριστικών αγνοούνται πλήρως:

    Διαχωρισμός κυττάρων με ευαισθησία στην πεζότητα ή χωρίς ευαισθησία στην πεζότητα

    Για να ελέγξετε την ευαισθησία της πεζότητας του διαχωριστικού, χρησιμοποιήστε το πέμπτο όρισμα, match_mode .

    Από προεπιλογή, match_mode τίθεται σε 0, καθιστώντας το TEXTSPLIT case-sensitive .

    Σε αυτό το παράδειγμα, οι αριθμοί διαχωρίζονται από τα πεζά γράμματα "x" και τα κεφαλαία γράμματα "X".

    Ο τύπος με την προεπιλεγμένη ευαισθησία σε πεζά γράμματα δέχεται μόνο το πεζό "x" ως διαχωριστικό:

    =TEXTSPLIT(A2, " x ")

    Προσέξτε ότι ο διαχωριστής έχει ένα κενό και στις δύο πλευρές του γράμματος " x ", ώστε να αποφεύγονται τα κενά στην αρχή και στο τέλος των αποτελεσμάτων.

    Για να απενεργοποιήσετε την ευαισθησία στην πεζότητα, δίνετε 1 για το match_mode για να αναγκάσετε τον τύπο TEXTSPLIT να αγνοήσει την πεζότητα των γραμμάτων:

    =TEXTSPLIT(A2, " x ", , , ,1)

    Τώρα, όλες οι συμβολοσειρές χωρίζονται σωστά με οποιοδήποτε διαχωριστικό:

    Συμπλήρωση ελλιπών τιμών σε πίνακα 2D

    Το τελευταίο όρισμα της συνάρτησης TEXTSPLIT, pad_with , είναι χρήσιμη σε περίπτωση που λείπουν μία ή περισσότερες τιμές από την αρχική συμβολοσειρά. Όταν μια τέτοια συμβολοσειρά χωρίζεται τόσο σε στήλες όσο και σε γραμμές, από προεπιλογή, το Excel επιστρέφει σφάλματα #N/A αντί για τις τιμές που λείπουν για να μην καταστρέψει τη δομή ενός δισδιάστατου πίνακα.

    Στην παρακάτω συμβολοσειρά, δεν υπάρχει το "=" ( col_delimiter ) μετά το "Score". Για να διατηρηθεί η ακεραιότητα του πίνακα που προκύπτει, το TEXTSPLIT εκδίδει #N/A δίπλα στο "Score".

    Για να κάνετε το αποτέλεσμα πιο φιλικό προς το χρήστη, μπορείτε να αντικαταστήσετε το σφάλμα #N/A με οποιαδήποτε τιμή θέλετε. Απλά, πληκτρολογήστε την επιθυμητή τιμή στο πεδίο pad_with επιχείρημα.

    Στην περίπτωσή μας, αυτό θα μπορούσε να είναι μια παύλα ("-"):

    =TEXTSPLIT(A2, "=", ", ", ", , ,"-")

    Ή μια κενή συμβολοσειρά (""):

    =TEXTSPLIT(A2, "=", ", ", ", , ,""")

    Τώρα που έχετε μάθει τις πρακτικές χρήσεις κάθε ορίσματος της συνάρτησης TEXTSPLIT, ας συζητήσουμε μερικά προηγμένα παραδείγματα που μπορούν να σας βοηθήσουν να αντιμετωπίσετε μη τετριμμένες προκλήσεις στα φύλλα του Excel.

    Διαχωρισμός ημερομηνιών σε ημέρα, μήνα και έτος

    Για να διαιρέσετε μια ημερομηνία σε επιμέρους μονάδες, πρέπει πρώτα να μετατρέψετε την ημερομηνία σε κείμενο, επειδή η συνάρτηση TEXTSPLIT ασχολείται με συμβολοσειρές κειμένου, ενώ οι ημερομηνίες του Excel είναι αριθμοί.

    Ο ευκολότερος τρόπος για να μετατρέψετε μια αριθμητική τιμή σε κείμενο είναι η χρήση της συνάρτησης TEXT. Απλά φροντίστε να δώσετε έναν κατάλληλο κωδικό μορφοποίησης για την ημερομηνία σας.

    Στην περίπτωσή μας, ο τύπος είναι:

    =TEXT(A2, "ηη/ηη/ηηη")

    Το επόμενο βήμα είναι να ενσωματώσετε την παραπάνω συνάρτηση στο 1ο όρισμα της TEXTSPLIT και να εισαγάγετε τον αντίστοιχο διαχωριστή για το 2ο ή το 3ο όρισμα, ανάλογα με το αν κάνετε διαχωρισμό σε στήλες ή γραμμές. Σε αυτό το παράδειγμα, οι μονάδες ημερομηνίας διαχωρίζονται με κάθετους χαρακτήρες, οπότε χρησιμοποιούμε "/" για το col_delimiter επιχείρημα:

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    Διαχωρίστε τα κελιά και αφαιρέστε ορισμένους χαρακτήρες

    Φανταστείτε το εξής: έχετε χωρίσει μια μεγάλη συμβολοσειρά σε κομμάτια, αλλά ο πίνακας που προκύπτει εξακολουθεί να περιέχει κάποιους ανεπιθύμητους χαρακτήρες, όπως οι παρενθέσεις στο παρακάτω στιγμιότυπο:

    =TEXTSPLIT(A2, " ", "; ")

    Για να αφαιρέσετε την αρχική και την τελική παρένθεση κάθε φορά, τοποθετήστε δύο συναρτήσεις SUBSTITUTE η μία μέσα στην άλλη (κάθε μία αντικαθιστά μία παρένθεση με ένα κενό αλφαριθμητικό) και χρησιμοποιήστε τον τύπο TEXTSPLIT για την κείμενο όρισμα της εσωτερικής SUBSTITUTE:

    =SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", ")", "")

    Συμβουλή. Εάν ο τελικός πίνακας περιέχει πάρα πολλούς επιπλέον χαρακτήρες, μπορείτε να τους καθαρίσετε χρησιμοποιώντας μία από τις μεθόδους που περιγράφονται σε αυτό το άρθρο: Πώς να αφαιρέσετε ανεπιθύμητους χαρακτήρες στο Excel.

    Διαχωρισμός συμβολοσειρών που παραλείπουν ορισμένες τιμές

    Ας υποθέσουμε ότι θέλετε να χωρίσετε τις παρακάτω συμβολοσειρές σε 4 στήλες: Όνομα , Επώνυμο , Βαθμολογία , και Αποτέλεσμα Το πρόβλημα είναι ότι ορισμένες συμβολοσειρές περιέχουν τον τίτλο "Mr." ή "Ms.", εξαιτίας του οποίου τα αποτελέσματα είναι όλα λάθος:

    Η λύση δεν είναι προφανής αλλά αρκετά απλή :)

    Εκτός από τα υπάρχοντα διαχωριστικά, τα οποία είναι ένα κενό (" ") και ένα κόμμα και ένα κενό (", "), συμπεριλαμβάνετε τις συμβολοσειρές "Mr. " και "Ms. " στην εντολή col_delimiter array constant, έτσι ώστε η συνάρτηση να χρησιμοποιεί τους ίδιους τους τίτλους για να διαχωρίζει το κείμενο. Για να αγνοήσετε τις κενές τιμές, ορίζετε το ignore_empty σε TRUE.

    =TEXTSPLIT(A2, {" ",",", ", "Mr. ", "Ms."}, ,TRUE)

    Τώρα, τα αποτελέσματα είναι απολύτως τέλεια!

    Εναλλακτικές λύσεις TEXTSPLIT

    Σε εκδόσεις του Excel όπου η λειτουργία TEXTSPLIT δεν υποστηρίζεται, μπορείτε να διαιρέσετε συμβολοσειρές χρησιμοποιώντας διάφορους συνδυασμούς της λειτουργίας SEARCH / FIND με τις επιλογές LEFT, RIGHT και MID. Συγκεκριμένα:

    • Η SEARCH χωρίς ευαισθησία στη πεζότητα ή η FIND με ευαισθησία στη πεζότητα καθορίζει τη θέση του διαχωριστικού μέσα σε μια συμβολοσειρά, και
    • Οι συναρτήσεις LEFT, RIGHT και MID εξάγουν μια υποσειρά πριν, μετά ή μεταξύ δύο περιπτώσεων του οριοθέτη.

    Στην περίπτωσή μας, για να χωρίσουμε τις τιμές που χωρίζονται από ένα κόμμα και ένα διάστημα , οι τύποι έχουν ως εξής.

    Για να εξαγάγετε το όνομα:

    =LEFT(A2, SEARCH(",", A2, 1) -1)

    Για να τραβήξετε το σκορ:

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    Για να πάρετε το αποτέλεσμα:

    =RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)

    Για τη λεπτομερή εξήγηση της λογικής των τύπων, ανατρέξτε στην ενότητα Πώς να χωρίζετε συμβολοσειρές με βάση χαρακτήρα ή μάσκα.

    Λάβετε υπόψη ότι σε αντίθεση με τη συνάρτηση TEXTSPLIT του δυναμικού πίνακα, αυτοί οι τύποι ακολουθούν την παραδοσιακή προσέγγιση ενός τύπου-ενός κελιού. Εισάγετε τον τύπο στο πρώτο κελί και στη συνέχεια τον σύρετε προς τα κάτω στη στήλη για να τον αντιγράψετε στα παρακάτω κελιά.

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

    Αυτός είναι ο τρόπος διαχωρισμού κελιών στο Excel 365 χρησιμοποιώντας το TEXTSPLIT ή εναλλακτικές λύσεις σε προηγούμενες εκδόσεις. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Βιβλίο ασκήσεων για κατέβασμα

    Συνάρτηση TEXTSPLIT για διαχωρισμό συμβολοσειρών - παραδείγματα τύπων (.xlsx αρχείο)

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.