Πίνακας περιεχομένων
Όταν πρέπει να βρείτε δεδομένα στο φύλλο σας που αντιστοιχούν σε μια συγκεκριμένη εγγραφή-κλειδί, συνήθως στρέφεστε στο VLOOKUP του Google Sheets. Αλλά να 'τος: το VLOOKUP σας χαστουκίζει με περιορισμούς σχεδόν αμέσως. Γι' αυτό καλύτερα να αυξήσετε τους πόρους για την εργασία σας μαθαίνοντας το INDEX MATCH.
Η INDEX MATCH στο Google Sheets είναι ένας συνδυασμός δύο λειτουργιών: INDEX και MATCH. Όταν χρησιμοποιούνται σε συνδυασμό, λειτουργούν ως μια καλύτερη εναλλακτική λύση για το VLOOKUP του Google Sheets. Ας ανακαλύψουμε τις δυνατότητές τους μαζί σε αυτό το blog post. Αλλά πρώτα, θα ήθελα να σας δώσω μια γρήγορη περιήγηση στους δικούς τους ρόλους στα λογιστικά φύλλα.
Λειτουργία MATCH του Google Sheets
Θα ήθελα να ξεκινήσω με το Google Sheets MATCH επειδή είναι πολύ απλό. Σαρώνει τα δεδομένα σας για μια συγκεκριμένη τιμή και επιστρέφει τη θέση της:
=MATCH(search_key, range, [search_type])- search_key είναι ο δίσκος που ψάχνετε. Απαιτείται.
- εύρος είναι είτε μια γραμμή είτε μια στήλη για να κοιτάξετε. Απαιτείται.
Σημείωση. Η MATCH δέχεται μόνο μονοδιάστατους πίνακες: είτε γραμμή είτε στήλη.
- search_type είναι προαιρετικό και καθορίζει αν η αντιστοίχιση θα πρέπει να είναι ακριβής ή κατά προσέγγιση. Αν παραλειφθεί, είναι 1 από προεπιλογή:
- 1 σημαίνει ότι το εύρος ταξινομείται σε αύξουσα σειρά. Η συνάρτηση παίρνει τη μεγαλύτερη τιμή που είναι μικρότερη ή ίση με τη δική σας search_key .
- 0 θα κάνει τη συνάρτηση να αναζητήσει την ακριβή αντιστοιχία σε περίπτωση που το εύρος σας δεν είναι ταξινομημένο.
- -1 υποδεικνύει ότι οι εγγραφές κατατάσσονται με φθίνουσα ταξινόμηση. Σε αυτή την περίπτωση, η συνάρτηση παίρνει τη μικρότερη τιμή μεγαλύτερη ή ίση με την search_key .
Ακολουθεί ένα παράδειγμα: για να λάβω τη θέση ενός συγκεκριμένου μούρου στη λίστα όλων των μούρων, χρειάζομαι τον ακόλουθο τύπο MATCH στο Google Sheets μου:
=MATCH("Blueberry", A1:A10, 0)
Λειτουργία INDEX του Google Sheets
Ενώ η λειτουργία MATCH δείχνει πού να αναζητήσετε την τιμή σας (τη θέση της στο εύρος), η λειτουργία INDEX του Google Sheets αντλεί την ίδια την τιμή με βάση τις μετατοπίσεις γραμμής και στήλης:
=INDEX(reference, [row], [column])- αναφορά είναι το εύρος που πρέπει να κοιτάξετε. Απαιτείται.
- σειρά είναι ο αριθμός των σειρών που πρέπει να μετατοπιστούν από το πρώτο κελί της περιοχής σας. Προαιρετικό, 0 αν παραλειφθεί.
- στήλη , ακριβώς όπως σειρά , είναι ο αριθμός των στηλών μετατόπισης. Επίσης προαιρετικό, επίσης 0 αν παραλειφθεί.
Εάν καθορίσετε και τα δύο προαιρετικά ορίσματα (γραμμή και στήλη), το Google Sheets INDEX θα επιστρέψει μια εγγραφή από ένα κελί προορισμού:
=INDEX(A1:C10, 7, 1)
Παραλείψτε ένα από αυτά τα ορίσματα και η συνάρτηση θα σας δώσει ολόκληρη τη γραμμή ή τη στήλη αντίστοιχα:
=INDEX(A1:C10, 7)
Πώς να χρησιμοποιήσετε το INDEX MATCH στο Google Sheets - παραδείγματα τύπων
Όταν τα INDEX και MATCH χρησιμοποιούνται μαζί στα λογιστικά φύλλα, είναι τα πιο ισχυρά τους. Μπορούν να αντικαταστήσουν απόλυτα το VLOOKUP του Google Sheets και να αντλήσουν την απαιτούμενη εγγραφή από έναν πίνακα με βάση την τιμή κλειδί σας.
Δημιουργήστε τον πρώτο σας τύπο INDEX MATCH για το Google Sheets
Ας υποθέσουμε ότι θα θέλατε να πάρετε τις πληροφορίες για τα αποθέματα κράνμπερι από τον ίδιο πίνακα που χρησιμοποίησα παραπάνω. Αντάλλαξα μόνο τις στήλες Β και Γ (θα μάθετε γιατί λίγο αργότερα).
- Τώρα όλα τα μούρα παρατίθενται στη στήλη C. Η λειτουργία MATCH του Google Sheets θα σας βοηθήσει να εντοπίσετε την ακριβή σειρά του cranberry: 8
=MATCH("Cranberry", C1:C10, 0)
- Βάλτε όλη αυτή τη φόρμουλα MATCH σε ένα σειρά στη συνάρτηση INDEX:
=INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))
Αυτό θα επιστρέψει ολόκληρη τη σειρά με κράνμπερι.
- Επειδή όμως το μόνο που χρειάζεστε είναι οι πληροφορίες για το απόθεμα, καθορίστε επίσης τον αριθμό της στήλης αναζήτησης: 3
=INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)
- Voila!
- Μπορείτε να προχωρήσετε περισσότερο και να εγκαταλείψετε τον τελευταίο δείκτη στήλης ( 2 Δεν θα το χρειαστείτε καθόλου αν χρησιμοποιείτε μόνο τη στήλη αναζήτησης ( B1:B10 ) και όχι ολόκληρος ο πίνακας ( A1:C10 ) ως το πρώτο όρισμα:
=INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))
Δείτε επίσης: Πώς να χρησιμοποιήσετε το Προηγμένο φίλτρο στο Excel - παραδείγματα περιοχής κριτηρίων με τύπουςΣυμβουλή. Ένας πιο βολικός τρόπος για να ελέγξετε τη διαθεσιμότητα διαφόρων μούρων θα ήταν να τα τοποθετήσετε σε μια αναπτυσσόμενη λίστα ( E2 ) και παραπέμψτε τη συνάρτηση MATCH στο κελί με τη λίστα:
=INDEX(B1:B10, MATCH(E2, C1:C10, 0))
Μόλις επιλέξετε το μούρο, η σχετική τιμή θα αλλάξει ανάλογα:
Γιατί το INDEX MATCH στο Google Sheets είναι καλύτερο από το VLOOKUP
Γνωρίζετε ήδη ότι το INDEX MATCH του Google Sheets αναζητά την τιμή σας σε έναν πίνακα και επιστρέφει μια άλλη σχετική εγγραφή από την ίδια γραμμή. Και γνωρίζετε ότι το VLOOKUP του Google Sheets κάνει ακριβώς το ίδιο. Γιατί λοιπόν να ασχοληθείτε;
Το θέμα είναι, INDEX MATCH έχει μερικά σημαντικά πλεονεκτήματα πάνω από το VLOOKUP:
- Είναι δυνατή η αναζήτηση στην αριστερή πλευρά . άλλαξα τις θέσεις των στηλών νωρίτερα για να δείξω αυτό: η λειτουργία INDEX MATCH στο Google Sheets μπορεί και ψάχνει στα αριστερά της στήλης αναζήτησης. Το VLOOKUP ψάχνει πάντα την πρώτη στήλη του εύρους και ψάχνει για αντιστοιχίες στα δεξιά της - αλλιώς, παίρνει μόνο #N/A σφάλματα:
- Δεν υπάρχουν μπερδεμένες αναφορές κατά την προσθήκη νέων στηλών και τη μετακίνηση υφιστάμενων. Εάν προσθέσετε ή μετακινήσετε στήλες, το INDEX MATCH θα αντικατοπτρίζει τις αλλαγές αυτόματα χωρίς να επεμβαίνει στο αποτέλεσμα. Εφόσον χρησιμοποιείτε αναφορές στηλών, αυτές προσαρμόζονται αμέσως από το Google Sheets:
Προχωρήστε και προσπαθήστε να το κάνετε αυτό με το VLOOKUP: απαιτεί τον αριθμό παραγγελίας και όχι τις αναφορές κελιών για μια στήλη αναζήτησης. Έτσι, θα καταλήξετε να λάβετε απλώς τη λάθος τιμή επειδή μια άλλη στήλη παίρνει την ίδια θέση - στήλη 2 στο παράδειγμά μου:
- Εξετάζει την περίπτωση κειμένου όταν είναι απαραίτητο (περισσότερα σχετικά με αυτό παρακάτω).
- Μπορεί να χρησιμοποιηθεί για κάθετη αναζήτηση με βάση πολλαπλά κριτήρια.
Σας καλώ να εξετάσετε λεπτομερώς τα δύο τελευταία σημεία παρακάτω.
Αναζήτηση v με βάση την πεζότητα με INDEX MATCH στο Google Sheets
Το INDEX MATCH είναι το ιδανικό εργαλείο όταν πρόκειται για ευαισθησία στην πεζότητα.
Ας υποθέσουμε ότι όλα τα μούρα πωλούνται με δύο τρόπους - χύμα (ζυγίζονται στον πάγκο) και συσκευασμένα σε κιβώτια. Ως εκ τούτου, υπάρχουν δύο εμφανίσεις κάθε μούρου που γράφονται σε διαφορετικές περιπτώσεις στον κατάλογο, το καθένα με το δικό του αναγνωριστικό που επίσης διαφέρει στις περιπτώσεις:
Πώς μπορείτε λοιπόν να αναζητήσετε τις πληροφορίες αποθέματος για ένα μούρο που πωλείται με συγκεκριμένο τρόπο; Το VLOOKUP θα επιστρέψει το πρώτο όνομα που θα βρει, ανεξάρτητα από την περίπτωσή του.
Ευτυχώς, το INDEX MATCH για το Google Sheets μπορεί να το κάνει σωστά. Θα πρέπει απλώς να χρησιμοποιήσετε μια πρόσθετη λειτουργία - FIND ή EXACT.
Παράδειγμα 1. FIND για Vlookup με ευαισθησία στην πεζότητα
Το FIND είναι μια συνάρτηση στο Google Sheets που είναι ευαίσθητη στην πεζότητα, γεγονός που την καθιστά ιδανική για κάθετη αναζήτηση με ευαισθησία στην πεζότητα:
=ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))
Ας δούμε τι συμβαίνει σε αυτόν τον τύπο:
- Το FIND σαρώνει τη στήλη C ( C2:C19 ) για το αρχείο από E2 ( κεράσι Μόλις εντοπιστεί, ο τύπος "μαρκάρει" αυτό το κελί με έναν αριθμό - 1 .
- MATCH αναζητά αυτό το σήμα - 1 - στην ίδια στήλη ( C ) και παραδίδει τον αριθμό της γραμμής της στην INDEX.
- INDEX κατεβαίνει σε αυτή τη γραμμή στη στήλη B ( B2:B19 ) και σας φέρνει την απαιτούμενη εγγραφή.
- Όταν τελειώσετε τη δημιουργία του τύπου, πατήστε Ctrl+Shift+Enter για να προσθέσετε ArrayFormula στην αρχή. Είναι απαραίτητο γιατί χωρίς αυτό το FIND δεν θα μπορεί να κάνει αναζήτηση σε πίνακες (σε περισσότερα από ένα κελιά). Ή μπορείτε να πληκτρολογήσετε ' ArrayFormula ' από το πληκτρολόγιό σας.
Παράδειγμα 2. EXACT για Vlookup με ευαισθησία στην πεζότητα
Αν αντικαταστήσετε το FIND με το EXACT, το τελευταίο θα αναζητήσει εγγραφές με τους ίδιους ακριβώς χαρακτήρες, συμπεριλαμβανομένης της πεζότητας του κειμένου τους.
Η μόνη διαφορά είναι ότι το EXACT "μαρκάρει" έναν αγώνα με ΑΛΗΘΙΝΟ αντί για αριθμό 1 Ως εκ τούτου, το πρώτο όρισμα της MATCH θα πρέπει να είναι ΑΛΗΘΙΝΟ :
=ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))
Google Sheets INDEX MATCH με πολλαπλά κριτήρια
Τι γίνεται αν υπάρχουν διάφορες συνθήκες βάσει των οποίων θα θέλατε να ανακτήσετε την εγγραφή;
Ας ελέγξουμε την τιμή του κεράσι που πωλείται σε Κουβάδες PP και είναι ήδη εξαντλείται :
Τακτοποίησα όλα τα κριτήρια στις αναπτυσσόμενες λίστες στη στήλη F. Και είναι το Google Sheets INDEX MATCH που υποστηρίζει πολλαπλά κριτήρια, όχι το VLOOKUP. Ακολουθεί ο τύπος που θα πρέπει να χρησιμοποιήσετε:
=ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))
Μην πανικοβάλλεστε! :) Η λογική του είναι στην πραγματικότητα αρκετά απλή:
- CONCATENATE(F2:F4) συνδυάζει και τις τρεις εγγραφές από τα κελιά με τα κριτήρια σε μια συμβολοσειρά όπως αυτή:
CherryPP κουβάςRunning out
Αυτό είναι ένα search_key για το MATCH, ή, με άλλα λόγια, αυτό που ψάχνετε στον πίνακα.
- A2:A24&C2:C24&D2:D24 αποτελούν εύρος Δεδομένου ότι και τα τρία κριτήρια λαμβάνουν χώρα σε τρεις ξεχωριστές στήλες, με αυτόν τον τρόπο τα συνδυάζετε κατά κάποιον τρόπο:
ΚεράσιΔίσκος από χαρτόνιΣε απόθεμα
Συσκευασία CherryFilmΕκτός αποθέματος
CherryPP κουβάςRunning out
κ.λπ.
- Το τελευταίο όρισμα στην εντολή MATCH - 0 - καθιστά δυνατή την εύρεση της ακριβούς αντιστοιχίας για CherryPP κουβάςRunning out μεταξύ όλων αυτών των σειρών συνδυασμένων στηλών. Όπως μπορείτε να δείτε, βρίσκεται στην 3η σειρά.
- Και στη συνέχεια, το INDEX κάνει τη δουλειά του: φέρνει την εγγραφή από την 3η γραμμή της στήλης B.
- Η ArrayFormula χρησιμοποιείται για να επιτρέπει σε άλλες συναρτήσεις να εργάζονται με πίνακες.
Συμβουλή. Εάν ο τύπος σας δεν βρει μια αντιστοιχία, θα επιστρέψει ένα σφάλμα. Για να το αποφύγετε αυτό, μπορείτε να τυλίξετε ολόκληρο αυτόν τον τύπο σε IFERROR (να τον κάνετε το πρώτο όρισμα) και να εισαγάγετε ό,τι θέλετε να δείτε σε ένα κελί αντί για σφάλματα ως δεύτερο όρισμα:
=IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Δεν βρέθηκε")
Καλύτερη εναλλακτική λύση στο INDEX MATCH στο Google Sheets - Πολλαπλές αντιστοιχίες VLOOKUP
Όποια λειτουργία αναζήτησης και αν προτιμάτε, VLOOKUP ή INDEX MATCH, υπάρχει μια καλύτερη εναλλακτική λύση και για τις δύο.
Το Multiple VLOOKUP Matches είναι ένα ειδικό πρόσθετο για το Google Sheets που έχει σχεδιαστεί για να:
- αναζήτηση χωρίς τύπους
- αναζήτηση προς όλες τις κατευθύνσεις
- αναζήτηση με πολλαπλές συνθήκες για διαφορετικούς τύπους δεδομένων: κείμενο, αριθμοί, ημερομηνίες, χρόνος, κ.λπ.
- να φέρνετε πολλά σπίρτα, όσα χρειάζεστε (εφόσον υπάρχουν τόσα στον πίνακά σας, φυσικά)
Η διεπαφή είναι απλή, ώστε να μην έχετε αμφιβολίες για το αν κάνετε τα πάντα σωστά:
- Επιλέξτε εύρος πηγής.
- Ορίστε τον αριθμό των αντιστοιχιών και των στηλών που θα επιστρέφονται.
- Τελειοποιήστε τις συνθήκες χρησιμοποιώντας τους προκαθορισμένους τελεστές ( περιέχει, =, όχι κενό , μεταξύ κ.λπ.).
Θα είστε επίσης σε θέση να:
- προεπισκόπηση του αποτελέσματος
- να αποφασίσετε πού θα το τοποθετήσετε
- και πώς: ως τύπος ή μόνο τιμές
Μην χάσετε αυτή την ευκαιρία να ελέγξετε το πρόσθετο. Προχωρήστε στην εγκατάστασή του από το Google Workspace Marketplace. Η σελίδα με τα σεμινάριά του θα σας εξηγήσει λεπτομερώς κάθε επιλογή.
Έχουμε επίσης ετοιμάσει ένα ειδικό εκπαιδευτικό βίντεο:
Τα λέμε στα σχόλια παρακάτω ή στο επόμενο άρθρο ;)