Πίνακας περιεχομένων
Το σεμινάριο εξηγεί τις μορφές διανυσμάτων και πινάκων της συνάρτησης LOOKUP του Excel και παρουσιάζει τυπικές και μη τετριμμένες χρήσεις της LOOKUP στο Excel με παραδείγματα τύπων.
Μια από τις πιο συχνές ερωτήσεις που θέτει κάθε χρήστης του Excel μια στο τόσο είναι η εξής: " Πώς μπορώ να αναζητήσω μια τιμή σε ένα φύλλο και να μεταφέρω μια αντίστοιχη τιμή σε ένα άλλο φύλλο; "Φυσικά, μπορεί να υπάρχουν πολλές παραλλαγές του βασικού σεναρίου: μπορεί να αναζητάτε την πλησιέστερη αντιστοιχία και όχι την ακριβή αντιστοιχία, μπορεί να θέλετε να αναζητήσετε κάθετα σε μια στήλη ή οριζόντια σε μια γραμμή, να αξιολογήσετε ένα ή πολλαπλά κριτήρια κ.λπ. Ωστόσο, η ουσία είναι η ίδια - πρέπει να ξέρετε πώς να κάνετε αναζήτηση στο Excel.
Το Microsoft Excel παρέχει μια χούφτα διαφορετικούς τρόπους για να κάνετε αναζήτηση. Αρχικά, ας μάθουμε μια συνάρτηση που έχει σχεδιαστεί για να χειρίζεται τις απλούστερες περιπτώσεις κάθετης και οριζόντιας αναζήτησης. Όπως μπορείτε εύκολα να μαντέψετε, μιλάω για τη συνάρτηση LOOKUP.
Συνάρτηση LOOKUP του Excel - σύνταξη και χρήσεις
Στο πιο βασικό επίπεδο, η συνάρτηση LOOKUP στο Excel αναζητά μια τιμή σε μια στήλη ή γραμμή και επιστρέφει μια αντίστοιχη τιμή από την ίδια θέση σε μια άλλη στήλη ή γραμμή.
Υπάρχουν δύο μορφές LOOKUP στο Excel: Διάνυσμα και Συστοιχία Κάθε μορφή εξηγείται ξεχωριστά παρακάτω.
Συνάρτηση LOOKUP του Excel - διανυσματική μορφή
Στο πλαίσιο αυτό, ένα διάνυσμα αναφέρεται σε ένα εύρος μιας στήλης ή μιας γραμμής. Συνεπώς, χρησιμοποιείτε τη διανυσματική μορφή της LOOKUP για να αναζητήσετε μια γραμμή ή μια στήλη δεδομένων για μια καθορισμένη τιμή και να αντλήσετε μια τιμή από την ίδια θέση σε μια άλλη γραμμή ή στήλη.
Η σύνταξη του διανύσματος Lookup έχει ως εξής:
LOOKUP(lookup_value, lookup_vector, [result_vector])Πού:
- Lookup_value (υποχρεωτικό) - μια τιμή για την οποία θα γίνει αναζήτηση. Μπορεί να είναι ένας αριθμός, κείμενο, λογική τιμή TRUE ή FALSE ή μια αναφορά σε ένα κελί που περιέχει την τιμή αναζήτησης.
- Lookup_vector (υποχρεωτικό) - εύρος μιας σειράς ή μιας στήλης προς αναζήτηση. Πρέπει να είναι ταξινομημένο σε αύξουσα σειρά .
- Διάνυσμα_αποτελέσματος (προαιρετικό) - περιοχή μιας σειράς ή μιας στήλης από την οποία θέλετε να επιστρέψετε το αποτέλεσμα - μια τιμή στην ίδια θέση με την τιμή αναζήτησης. Διάνυσμα_αποτελέσματος πρέπει να είναι η ίδιο μέγεθος ως lookup_range Εάν παραλειφθεί, το αποτέλεσμα επιστρέφεται από το lookup_vector .
Τα παρακάτω παραδείγματα παρουσιάζουν δύο απλές φόρμουλες Lookup σε δράση.
Τύπος κάθετης αναζήτησης - αναζήτηση σε εύρος μιας στήλης
Ας υποθέσουμε ότι έχετε μια λίστα με πωλητές στη στήλη D (D2:D5) και τα προϊόντα που πούλησαν στη στήλη E (E2:E5). Δημιουργείτε ένα ταμπλό όπου οι χρήστες σας θα εισάγουν το όνομα του πωλητή στη στήλη B2 και χρειάζεστε έναν τύπο που θα βγάζει ένα αντίστοιχο προϊόν στη στήλη B3. Η εργασία μπορεί εύκολα να επιτευχθεί με αυτόν τον τύπο:
=LOOKUP(B2,D2:D5,E2:E5)
Για να κατανοήσετε καλύτερα τα επιχειρήματα, ρίξτε μια ματιά σε αυτό το στιγμιότυπο οθόνης:
Τύπος οριζόντιας αναζήτησης - αναζήτηση σε εύρος μιας σειράς
Αν τα δεδομένα της πηγής σας έχουν οριζόντια διάταξη, δηλαδή οι καταχωρήσεις βρίσκονται σε γραμμές και όχι σε στήλες, τότε δώστε ένα εύρος μιας γραμμής στο πεδίο lookup_vector και result_vector επιχειρήματα, όπως αυτό:
=LOOKUP(B2,E1:H1,E2:H2)
Στο δεύτερο μέρος αυτού του σεμιναρίου, θα βρείτε μερικά ακόμη παραδείγματα του Excel Lookup που επιλύουν πιο σύνθετες εργασίες. Εν τω μεταξύ, παρακαλούμε να θυμάστε τα ακόλουθα απλά γεγονότα που θα σας βοηθήσουν να παρακάμψετε πιθανές παγίδες και να αποφύγετε συνήθη σφάλματα.
5 πράγματα που πρέπει να γνωρίζετε για τη διανυσματική μορφή του Excel LOOKUP
- Τιμές σε lookup_vector θα πρέπει να ταξινομούνται σε αύξουσα σειρά , δηλ. από το μικρότερο προς το μεγαλύτερο ή από το Α προς το Ω, διαφορετικά ο τύπος αναζήτησης του Excel μπορεί να επιστρέψει ένα σφάλμα ή ένα λανθασμένο αποτέλεσμα. Αν πρέπει να κάνετε αναζήτηση σε μη ταξινομημένα δεδομένα , και στη συνέχεια χρησιμοποιήστε είτε INDEX MATCH είτε OFFSET MATCH.
- Lookup_vector και result_vector πρέπει να είναι μία σειρά ή μία στήλη εύρος του ίδιου μεγέθους.
- Η συνάρτηση LOOKUP στο Excel είναι case-insensitive , δεν κάνει διάκριση μεταξύ κεφαλαίων και πεζών γραμμάτων.
- Το Excel LOOKUP λειτουργεί με βάση κατά προσέγγιση ταύτιση Πιο συγκεκριμένα, ένας τύπος Lookup αναζητά πρώτα την ακριβή αντιστοιχία. Αν δεν μπορεί να βρει την τιμή αναζήτησης ακριβώς, αναζητά την επόμενη μικρότερη τιμή , δηλαδή η μεγαλύτερη τιμή στο lookup_vector που είναι μικρότερη ή ίση με lookup_value .
Για παράδειγμα, εάν η τιμή αναζήτησης είναι "5", ο τύπος θα την αναζητήσει πρώτα. Εάν δεν βρεθεί το "5", θα αναζητήσει το "4". Εάν δεν βρεθεί το "4", θα αναζητήσει το "3" κ.ο.κ.
- Εάν lookup_value είναι μικρότερο από τη μικρότερη τιμή στο lookup_vector , το Excel LOOKUP επιστρέφει το σφάλμα #N/A.
Συνάρτηση LOOKUP του Excel - μορφή πίνακα
Η μορφή πίνακα της συνάρτησης LOOKUP αναζητά την καθορισμένη τιμή στην πρώτη στήλη ή γραμμή του πίνακα και ανακτά μια τιμή από την ίδια θέση στην τελευταία στήλη ή γραμμή του πίνακα.
Ο πίνακας Lookup έχει 2 ορίσματα, τα οποία είναι υποχρεωτικά:
LOOKUP(lookup_value, array)Πού:
- Lookup_value - μια τιμή για αναζήτηση σε έναν πίνακα.
- Συστοιχία - μια σειρά κελιών όπου θέλετε να αναζητήσετε την τιμή αναζήτησης. Οι τιμές στην πρώτη στήλη ή γραμμή του πίνακα (ανάλογα με το αν κάνετε V-lookup ή H-lookup) πρέπει να είναι ταξινομημένες σε αύξουσα σειρά. Οι κεφαλαίοι και οι πεζοί χαρακτήρες θεωρούνται ισοδύναμοι.
Για παράδειγμα, με τα ονόματα των πωλητών να βρίσκονται στην πρώτη στήλη του πίνακα (στήλη Α) και τις ημερομηνίες των παραγγελιών στην τελευταία στήλη του πίνακα (στήλη Γ), μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο για να αναζητήσετε το όνομα και να αντλήσετε την αντίστοιχη ημερομηνία:
=LOOKUP(B2,D2:F5)
Σημείωση. Η μορφή συστοιχίας της συνάρτησης LOOKUP του Excel δεν πρέπει να συγχέεται με τους τύπους συστοιχιών του Excel. Παρόλο που λειτουργεί σε πίνακες, η LOOKUP εξακολουθεί να είναι ένας κανονικός τύπος, ο οποίος ολοκληρώνεται με τον συνήθη τρόπο πατώντας το πλήκτρο Enter.
4 πράγματα που πρέπει να γνωρίζετε για τη μορφή συστοιχίας του Excel LOOKUP
- Εάν array έχει περισσότερες γραμμές από στήλες ή τον ίδιο αριθμό στηλών και γραμμών, ένας τύπος Lookup πραγματοποιεί αναζήτηση στην πρώτη στήλη (οριζόντια αναζήτηση).
- Εάν array έχει περισσότερες στήλες από γραμμές , το Excel LOOKUP αναζητά στην πρώτη γραμμή (κάθετη αναζήτηση).
- Εάν ένας τύπος δεν μπορεί να βρει την τιμή αναζήτησης, χρησιμοποιεί την μεγαλύτερη τιμή στον πίνακα που είναι μικρότερη ή ίση με lookup_value .
- Εάν η η τιμή αναζήτησης είναι μικρότερη από τη μικρότερη τιμή στην πρώτη στήλη ή γραμμή του πίνακα (ανάλογα με τις διαστάσεις του πίνακα), ένας τύπος Lookup επιστρέφει το σφάλμα #N/A.
Σημαντική σημείωση! Η λειτουργικότητα της μορφής συστοιχίας LOOKUP του Excel είναι περιορισμένη και δεν συνιστούμε τη χρήση της. Αντ' αυτού, μπορείτε να χρησιμοποιήσετε τη συνάρτηση VLOOKUP ή HLOOKUP, οι οποίες είναι οι βελτιωμένες εκδόσεις για την εκτέλεση κάθετης και οριζόντιας αναζήτησης, αντίστοιχα.
Πώς να χρησιμοποιήσετε τη συνάρτηση LOOKUP στο Excel - παραδείγματα τύπων
Παρόλο που υπάρχουν πιο ισχυρές συναρτήσεις για την αναζήτηση και την αντιστοίχιση στο Excel (που είναι το θέμα του επόμενου σεμιναρίου μας), το LOOKUP είναι χρήσιμο σε πολλές περιπτώσεις και τα παρακάτω παραδείγματα παρουσιάζουν μερικές μη τετριμμένες χρήσεις. Σημειώστε ότι όλοι οι παρακάτω τύποι χρησιμοποιούν τη διανυσματική μορφή του Excel LOOKUP.
Αναζήτηση μιας τιμής στο τελευταίο μη κενό κελί μιας στήλης
Εάν έχετε μια στήλη με δυναμικά συμπληρωμένα δεδομένα, μπορεί να θέλετε να επιλέξετε την πιο πρόσφατα προστιθέμενη εγγραφή, δηλαδή να πάρετε το τελευταίο μη κενό κελί σε μια στήλη. Για το σκοπό αυτό, χρησιμοποιήστε αυτόν τον γενικό τύπο:
LOOKUP(2, 1/( στήλη ""), στήλη )Στον παραπάνω τύπο, όλα τα ορίσματα εκτός από την αναφορά στήλης είναι σταθερές. Έτσι, για να ανακτήσετε την τελευταία τιμή σε μια συγκεκριμένη στήλη, πρέπει απλώς να δώσετε την αντίστοιχη αναφορά στήλης. Για παράδειγμα, για να εξάγετε την τιμή του τελευταίου μη κενού κελιού στη στήλη Α, χρησιμοποιήστε αυτόν τον τύπο:
=LOOKUP(2, 1/(A:A""), A:A)
Για να λάβετε την τελευταία τιμή από άλλες στήλες, τροποποιήστε τις αναφορές των στηλών όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης - η πρώτη αναφορά είναι η στήλη που θα ελεγχθεί για κενά/μη κενά κελιά και η δεύτερη αναφορά είναι η στήλη από την οποία θα επιστραφεί η τιμή:
Πώς λειτουργεί αυτή η φόρμουλα
Στο lookup_value όρισμα, δίνετε το 2 ή οποιονδήποτε άλλο αριθμό μεγαλύτερο του 1 (σε λίγο θα καταλάβετε γιατί).
Στο lookup_vector όρισμα, βάζετε αυτή την έκφραση: 1/(A:A""")
- Πρώτα, εκτελείτε τη λογική πράξη A:A"" που συγκρίνει κάθε κελί στη στήλη A με μια κενή συμβολοσειρά και επιστρέφει TRUE για τα κενά κελιά και FALSE για τα μη κενά κελιά. Στο παραπάνω παράδειγμα, ο τύπος στο F2 επιστρέφει αυτόν τον πίνακα: {TRUE;TRUE;TRUE;TRUE;TRUE;FALSE...}
- Στη συνέχεια, διαιρείτε τον αριθμό 1 με κάθε στοιχείο του παραπάνω πίνακα. Με το TRUE να ισούται με το 1 και το FALSE με το 0, λαμβάνετε έναν νέο πίνακα που αποτελείται από 1 και σφάλματα #DIV/0! (το αποτέλεσμα της διαίρεσης με το 0), και αυτός ο πίνακας χρησιμοποιείται ως lookup_vector Σε αυτό το παράδειγμα, είναι {1;1;1;1;1;#DIV/0!...}
Τώρα, πώς γίνεται ο τύπος να επιστρέφει την τελευταία μη κενή τιμή σε μια στήλη, δεδομένου ότι lookup_value δεν ταιριάζει με κανένα στοιχείο του lookup_vector ? Το κλειδί για την κατανόηση της λογικής είναι ότι το Excel LOOKUP αναζητά με προσεγγιστική αντιστοίχιση, δηλαδή όταν δεν βρίσκεται η ακριβής τιμή αναζήτησης, ταιριάζει με την αμέσως μεγαλύτερη τιμή στο lookup_vector που είναι μικρότερη από lookup_value Στην περίπτωσή μας, lookup_value είναι 2 και η μεγαλύτερη τιμή στο lookup_vector είναι 1, οπότε το LOOKUP ταιριάζει με το τελευταίο 1 στον πίνακα, το οποίο είναι το τελευταίο μη κενό κελί!
Στο result_vector όρισμα, αναφέρεστε στη στήλη από την οποία θέλετε να επιστρέψετε μια τιμή, και ο τύπος Lookup θα αντλήσει την τιμή στην ίδια θέση με την τιμή αναζήτησης.
Συμβουλή. Αν θέλετε να πάρετε το αριθμός της γραμμής κρατώντας την τελευταία τιμή, και στη συνέχεια χρησιμοποιήστε τη συνάρτηση ROW για να την ανακτήσετε. Για παράδειγμα: =LOOKUP(2,1/(A:A""),ROW(A:A))
Αναζητήστε μια τιμή στο τελευταίο μη κενό κελί μιας γραμμής
Εάν τα δεδομένα της πηγής σας είναι τοποθετημένα σε γραμμές αντί για στήλες, μπορείτε να λάβετε την τιμή του τελευταίου μη κενού κελιού χρησιμοποιώντας αυτόν τον τύπο:
LOOKUP(2, 1/( σειρά ""), σειρά )Στην πραγματικότητα, αυτός ο τύπος δεν είναι τίποτα άλλο παρά μια μικρή τροποποίηση του προηγούμενου τύπου, με τη μόνη διαφορά ότι χρησιμοποιείτε την αναφορά γραμμής αντί της αναφοράς στήλης.
Για παράδειγμα, για να λάβετε την τιμή του τελευταίου μη κενού κελιού στη γραμμή 1, χρησιμοποιήστε τον ακόλουθο τύπο:
=LOOKUP(2, 1/(1:1""), 1:1)
Το ακόλουθο στιγμιότυπο οθόνης δείχνει το αποτέλεσμα:
Λήψη μιας τιμής που σχετίζεται με την τελευταία εγγραφή σε μια σειρά
Με λίγη δημιουργικότητα, ο παραπάνω τύπος μπορεί εύκολα να προσαρμοστεί για την επίλυση άλλων παρόμοιων εργασιών. Για παράδειγμα, μπορεί να χρησιμοποιηθεί για να πάρει μια τιμή που σχετίζεται με την τελευταία περίπτωση μιας συγκεκριμένης τιμής σε μια σειρά. Αυτό μπορεί να ακούγεται λίγο ασαφές, αλλά το ακόλουθο παράδειγμα θα κάνει τα πράγματα πιο κατανοητά.
Ας υποθέσουμε ότι έχετε έναν συγκεντρωτικό πίνακα όπου η στήλη Α περιέχει τα ονόματα των πωλητών και οι επόμενες στήλες περιέχουν δεδομένα κάποιου είδους για κάθε μήνα. Σε αυτό το παράδειγμα, ένα κελί περιέχει "ναι" εάν ένας συγκεκριμένος πωλητής έχει κλείσει τουλάχιστον μία συμφωνία σε ένα συγκεκριμένο μήνα. Ο στόχος μας είναι να βρούμε έναν μήνα που σχετίζεται με την τελευταία καταχώρηση "ναι" σε μια σειρά.
Η εργασία μπορεί να επιλυθεί χρησιμοποιώντας τον ακόλουθο τύπο LOOKUP:
=LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)
Η λογική του τύπου είναι βασικά η ίδια με αυτή που περιγράφεται στο πρώτο παράδειγμα. Η διαφορά είναι ότι χρησιμοποιείτε τον τελεστή "ίσο με" ("=") αντί για "μη ίσο με" ("") και ότι λειτουργείτε σε γραμμές αντί για στήλες.
Το ακόλουθο στιγμιότυπο οθόνης δείχνει ένα αποτέλεσμα:
Αναζήτηση ως εναλλακτική λύση σε ένθετα IFs
Σε όλες τις φόρμουλες Lookup που έχουμε συζητήσει μέχρι στιγμής, το lookup_vector και result_vector τα ορίσματα αναπαρίστανται με αναφορές σε εύρος. Ωστόσο, η σύνταξη της συνάρτησης LOOKUP του Excel επιτρέπει την παροχή των διανυσμάτων με τη μορφή μιας κάθετης σταθεράς πίνακα, η οποία σας επιτρέπει να αναπαράγετε τη λειτουργικότητα του εμφωλευμένου IF με έναν πιο συμπαγή και ευανάγνωστο τύπο.
Ας υποθέσουμε ότι έχετε μια λίστα με συντομογραφίες στη στήλη Α και θέλετε να τις αντικαταστήσετε με πλήρη ονόματα, όπου το "C" σημαίνει "Completed", το "D" σημαίνει "Development" και το "T" σημαίνει "Testing". Η εργασία μπορεί να επιτευχθεί με την ακόλουθη ένθετη συνάρτηση IF:
=IF(A2="c", "Completed", IF(A2="d", "Development", IF(A2="t", "Testing", "")))
Ή, χρησιμοποιώντας αυτόν τον τύπο Lookup:
=LOOKUP(A2, {"c"; "d"; "t"}, {"Ολοκληρώθηκε"; "Ανάπτυξη"; "Δοκιμές"})
Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, και οι δύο τύποι δίνουν πανομοιότυπα αποτελέσματα:
Σημείωση: Για να λειτουργήσει σωστά ένας τύπος αναζήτησης του Excel, οι τιμές στο lookup_array θα πρέπει να ταξινομούνται από το Α έως το Ω ή από το μικρότερο έως το μεγαλύτερο.
Εάν αντλείτε τιμές από έναν πίνακα αναζήτησης, τότε μπορείτε να ενσωματώσετε μια συνάρτηση Vlookup στην lookup_value για να ανακτήσετε μια αντιστοιχία.
Υποθέτοντας ότι η τιμή αναζήτησης βρίσκεται στο κελί E2, ο πίνακας αναζήτησης είναι A2:C7 και η στήλη ενδιαφέροντος ("Status") είναι η 3η στήλη στον πίνακα αναζήτησης, ο ακόλουθος τύπος κάνει τη δουλειά:
=LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Ολοκληρώθηκε"; "Ανάπτυξη"; "Δοκιμές"})
Όπως φαίνεται στο παρακάτω στιγμιότυπο, ο τύπος ανακτά την κατάσταση του έργου από τον πίνακα αναζήτησης και αντικαθιστά μια συντομογραφία με την αντίστοιχη λέξη:
Συμβουλή. Εάν χρησιμοποιείτε το Excel 2016 ως μέρος μιας συνδρομής του Office 365, μπορείτε να χρησιμοποιήσετε τη λειτουργία SWITCH για παρόμοιους σκοπούς.
Ελπίζω αυτά τα παραδείγματα να έριξαν λίγο φως στον τρόπο λειτουργίας της συνάρτησης LOOKUP. Για να κατανοήσετε καλύτερα τους τύπους, μπορείτε να κατεβάσετε αυτά τα παραδείγματα Lookup του Excel. Στο επόμενο σεμινάριο, θα συζητήσουμε μερικούς άλλους τρόπους για να κάνουμε lookup στο Excel και θα εξηγήσουμε ποιος τύπος Lookup είναι καλύτερο να χρησιμοποιηθεί σε ποια κατάσταση. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!