
Γενική φόρμουλα
=MATCH(1,EXACT(LEFT(A1,255),LEFT(rng,255))*EXACT(MID(A1,256,255),MID(rng,256,255)),0)
Περίληψη
Για να αντιστοιχίσετε κείμενο μεγαλύτερο από 255 χαρακτήρες με τη συνάρτηση MATCH, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις LEFT, MID και EXACT για ανάλυση και σύγκριση κειμένου, όπως εξηγείται παρακάτω. Στο παράδειγμα που εμφανίζεται, ο τύπος στο G5 είναι:
=MATCH(1,EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255)),0)
όπου τα δεδομένα είναι το ονομαζόμενο εύρος B5: B15.
Σημείωση: αυτός ο τύπος εκτελεί μια σύγκριση με κεφαλαία.
Εξήγηση
Η συνάρτηση MATCH έχει όριο 255 χαρακτήρων για την τιμή αναζήτησης. Εάν προσπαθήσετε να χρησιμοποιήσετε μεγαλύτερο κείμενο, το MATCH θα επιστρέψει ένα #VALUE σφάλμα.
Για να επιλύσετε αυτό το όριο, μπορείτε να χρησιμοποιήσετε τη λογική boolean και τις συναρτήσεις LEFT, MID και EXACT για ανάλυση και σύγκριση κειμένου.
Η συμβολοσειρά που δοκιμάζουμε στο κελί E5 είναι 373 χαρακτήρες ως εξής:
Ο Lorem ipsum dolor amet έβαλε ένα πουλί σε αυτό το καταπιστευτικό ταμείο, τα δικαιώματα ποδηλάτου unicorn vaporware που πιθανώς δεν έχετε ακούσει για αυτά μουστάκι. Ζωοτροφές helvetica φλοιώδης σημειωτικά στην πραγματικότητα κειμήλιο. Ο Tumblr poutine unicorn godard προσπαθεί σκληρά πριν πουλήσει το διαλογισμό narwhal kitsch γιλέκο fixie twee κυριολεκτικά hoodie ρετρό. Messenger τσάντα κόλαση από φλοιώδη χυμό πράσινο.
Στον πυρήνα, αυτός είναι ένας τύπος MATCH, ρυθμισμένος για να αναζητήσει 1 σε λειτουργία ακριβούς αντιστοίχισης:
=MATCH(1,array,0)
Ο πίνακας στον παραπάνω τύπο περιέχει μόνο 1s και 0s και 1s αντιπροσωπεύουν κείμενο που ταιριάζει. Αυτός ο πίνακας κατασκευάζεται με την ακόλουθη έκφραση:
EXACT(LEFT(E5,255),LEFT(data,255))*EXACT(MID(E5,256,255),MID(data,256,255))
Η ίδια η έκφραση έχει δύο μέρη. Στα αριστερά έχουμε:
EXACT(LEFT(E5,255),LEFT(data,255)) // compare first 255 chars
Εδώ, η συνάρτηση LEFT εξάγει τους πρώτους 255 χαρακτήρες από το E5 και από όλα τα κελιά στα ονομαζόμενα δεδομένα εύρους (B5: B15). Επειδή τα δεδομένα περιέχουν 11 συμβολοσειρές κειμένου, το LEFT θα δημιουργήσει 11 αποτελέσματα.
Στη συνέχεια, η συνάρτηση EXACT συγκρίνει τη μονή συμβολοσειρά από το E5 με όλες τις 11 συμβολοσειρές που επέστρεψε ο LEFT Το EXACT επιστρέφει 11 αποτελέσματα σε έναν πίνακα όπως αυτό:
(FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Στα δεξιά, έχουμε μια άλλη έκφραση:
EXACT(MID(E5,256,255),MID(data,256,255) // compare next 255 chars
Αυτή είναι ακριβώς η ίδια προσέγγιση που χρησιμοποιείται με το LEFT, αλλά εδώ χρησιμοποιούμε τη συνάρτηση MID για να εξαγάγουμε τους επόμενους 255 χαρακτήρες κειμένου. Η συνάρτηση EXACT επιστρέφει ξανά 11 αποτελέσματα:
(TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE)
Όταν οι δύο παραπάνω πίνακες πολλαπλασιάζονται μεταξύ τους, η μαθηματική λειτουργία συγκεντρώνει τις τιμές TRUE FALSE σε 1s και 0s. Ακολουθώντας τους κανόνες της δυαδικής αριθμητικής, το αποτέλεσμα είναι ένας πίνακας ως εξής:
(0;0;0;0;0;0;0;0;0;1;0)
που επιστρέφεται απευθείας στο MATCH ως πίνακας αναζήτησης. Ο τύπος μπορεί τώρα να επιλυθεί σε:
=MATCH(1,(0;0;0;0;0;0;0;0;0;1;0),0)
Η συνάρτηση MATCH εκτελεί ακριβή αντιστοίχιση και επιστρέφει ένα τελικό αποτέλεσμα 10, το οποίο αντιπροσωπεύει τη δέκατη συμβολοσειρά κειμένου στο B5: B15.
Σημείωση: το μήκος του κειμένου που εμφανίζεται στο παράδειγμα υπολογίζεται με τη συνάρτηση LEN. Εμφανίζεται μόνο για αναφορά.
Επιλογή χωρίς διάκριση πεζών-κεφαλαίων
Η συνάρτηση EXACT είναι διάκριση πεζών-κεφαλαίων, οπότε ο παραπάνω τύπος θα σέβεται την περίπτωση.
Για να εκτελέσετε αντιστοίχιση με κεφαλαία γράμματα με μεγάλο κείμενο, χρησιμοποιείτε τις συναρτήσεις ISNUMBER και SEARCH ως εξής:
=MATCH(1,ISNUMBER(SEARCH(LEFT(E5,255),LEFT(data,255)))*ISNUMBER(SEARCH(MID(E5,256,255),MID(data,256,255))),0)
Η συνολική δομή αυτού του τύπου είναι πανομοιότυπη με το παραπάνω παράδειγμα, αλλά η συνάρτηση SEARCH χρησιμοποιείται αντί για EXACT για σύγκριση κειμένου (εξηγείται λεπτομερώς εδώ).
Σε αντίθεση με το EXACT, η συνάρτηση SEARCH υποστηρίζει επίσης χαρακτήρες μπαλαντέρ.
Με XMATCH
Η συνάρτηση XMATCH δεν έχει το ίδιο όριο 255 χαρακτήρων με το MATCH. Για να εκτελέσετε μια παρόμοια αντιστοίχιση σε μεγάλο κείμενο με το XMATCH, μπορείτε να χρησιμοποιήσετε τον πολύ πιο απλό τύπο παρακάτω:
=XMATCH(E5,data)
Σημείωση: Το XMATCH υποστηρίζει χαρακτήρες μπαλαντέρ, αλλά δεν είναι διάκριση πεζών-κεφαλαίων.