Πίνακας περιεχομένων
Το σεμινάριο παρουσιάζει μερικούς διαφορετικούς τύπους για την εκτέλεση δισδιάστατης αναζήτησης στο Excel. Απλά δείτε τις εναλλακτικές λύσεις και επιλέξτε την αγαπημένη σας :)
Όταν αναζητάτε κάτι στα λογιστικά φύλλα του Excel, τις περισσότερες φορές κοιτάτε κάθετα στις στήλες ή οριζόντια στις γραμμές. Αλλά μερικές φορές πρέπει να κοιτάξετε και στις δύο γραμμές και στις δύο στήλες. Με άλλα λόγια, στοχεύετε να βρείτε μια τιμή στην τομή μιας συγκεκριμένης γραμμής και στήλης. Αυτό ονομάζεται αναζήτηση μήτρας (ή αλλιώς 2-διάστατο ή Αναζήτηση 2 κατευθύνσεων ), και αυτό το σεμινάριο δείχνει πώς να το κάνετε με 4 διαφορετικούς τρόπους.
Τύπος INDEX MATCH MATCH του Excel
Ο πιο δημοφιλής τρόπος για να πραγματοποιήσετε μια αμφίδρομη αναζήτηση στο Excel είναι η χρήση του τύπου INDEX MATCH MATCH. Πρόκειται για μια παραλλαγή του κλασικού τύπου INDEX MATCH στον οποίο προσθέτετε μια ακόμη συνάρτηση MATCH προκειμένου να λάβετε τόσο τους αριθμούς γραμμής όσο και τους αριθμούς στήλης:
INDEX ( data_array , MATCH ( vlookup_value , lookup_column_range , 0), MATCH ( hlookup τιμή , lookup_row_range , 0))Ως παράδειγμα, ας φτιάξουμε έναν τύπο για να βγάλουμε τον πληθυσμό ενός συγκεκριμένου ζώου σε ένα δεδομένο έτος από τον παρακάτω πίνακα. Για αρχή, ορίζουμε όλα τα επιχειρήματα:
- Data_array - B2:E4 (κελιά δεδομένων, χωρίς τις επικεφαλίδες γραμμών και στηλών)
- Vlookup_value - H1 (ζώο-στόχος)
- Lookup_column_range - A2:A4 (επικεφαλίδες γραμμών: ονόματα ζώων) - A3:A4
- Hlookup_value - H2 (έτος-στόχος)
- Lookup_row_range - B1:E1 (επικεφαλίδες στηλών: έτη)
Βάλτε όλα τα επιχειρήματα μαζί και θα έχετε αυτόν τον τύπο για αμφίδρομη αναζήτηση:
=INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))
Πώς λειτουργεί αυτή η φόρμουλα
Αν και μπορεί να φαίνεται λίγο περίπλοκη με την πρώτη ματιά, η λογική του τύπου είναι πραγματικά απλή και εύκολα κατανοητή. Η συνάρτηση INDEX ανακτά μια τιμή από τον πίνακα δεδομένων με βάση τους αριθμούς γραμμής και στήλης και δύο συναρτήσεις MATCH παρέχουν αυτούς τους αριθμούς:
INDEX(B2:E4, row_num, column_num)
Εδώ, αξιοποιούμε την ικανότητα της MATCH(lookup_value, lookup_array, [match_type]) να επιστρέφει ένα σχετική θέση του lookup_value στο lookup_array .
Έτσι, για να βρούμε τον αριθμό της γραμμής, αναζητούμε το ζώο που μας ενδιαφέρει (H1) στις επικεφαλίδες των γραμμών (A2:A4):
MATCH(H1, A2:A4, 0)
Για να βρούμε τον αριθμό της στήλης, αναζητούμε το έτος-στόχο (H2) στις επικεφαλίδες των στηλών (B1:E1):
MATCH(H2, B1:E1, 0)
Και στις δύο περιπτώσεις, αναζητούμε ακριβή αντιστοιχία θέτοντας το 3ο όρισμα σε 0.
Σε αυτό το παράδειγμα, η πρώτη MATCH επιστρέφει 2 επειδή η τιμή vlookup (πολική αρκούδα) βρίσκεται στο A3, το οποίο είναι το 2ο κελί στο A2:A4. Η δεύτερη MATCH επιστρέφει 3 επειδή η τιμή hlookup (2000) βρίσκεται στο D1, το οποίο είναι το 3ο κελί στο B1:E1.
Λαμβάνοντας υπόψη τα παραπάνω, ο τύπος ανάγεται σε:
INDEX(B2:E4, 2, 3)
Και επιστρέψτε μια τιμή στην τομή της 2ης γραμμής και της 3ης στήλης στον πίνακα δεδομένων B2:E4, η οποία είναι μια τιμή στο κελί D3.
Τύπος VLOOKUP και MATCH για αναζήτηση 2 κατευθύνσεων
Ένας άλλος τρόπος για να κάνετε μια δισδιάστατη αναζήτηση στο Excel είναι να χρησιμοποιήσετε έναν συνδυασμό των συναρτήσεων VLOOKUP και MATCH:
VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)Για τον πίνακα του δείγματός μας, ο τύπος έχει την ακόλουθη μορφή:
=VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)
Πού:
- Table_array - A2:E4 (κελιά δεδομένων, συμπεριλαμβανομένων των επικεφαλίδων γραμμών)
- Vlookup_value - H1 (ζώο-στόχος)
- Hlookup_value - H2 (έτος-στόχος)
- Lookup_row_range - A1:E1 (επικεφαλίδες στηλών: έτη)
Πώς λειτουργεί αυτή η φόρμουλα
Ο πυρήνας του τύπου είναι η συνάρτηση VLOOKUP που έχει ρυθμιστεί για ακριβή αντιστοίχιση (το τελευταίο όρισμα έχει οριστεί σε FALSE), η οποία αναζητά την τιμή αναζήτησης (H1) στην πρώτη στήλη του πίνακα (A2:E4) και επιστρέφει μια τιμή από μια άλλη στήλη της ίδιας γραμμής. Για να καθορίσετε από ποια στήλη θα επιστρέψετε μια τιμή, χρησιμοποιείτε τη συνάρτηση MATCH που έχει επίσης ρυθμιστεί για ακριβή αντιστοίχιση (το τελευταίο όρισμα έχει οριστεί σε 0):
MATCH(H2, A1:E1, 0)
Η MATCH αναζητά την τιμή στο H2 σε όλες τις επικεφαλίδες των στηλών (A1:E1) και επιστρέφει τη σχετική θέση του κελιού που βρέθηκε. Στην περίπτωσή μας, το έτος-στόχος (2010) βρίσκεται στο E1, το οποίο είναι το 5ο στον πίνακα αναζήτησης. Έτσι, ο αριθμός 5 πηγαίνει στο col_index_num επιχείρημα του VLOOKUP:
VLOOKUP(H1, A2:E4, 5, FALSE)
Το VLOOKUP το αναλαμβάνει από εκεί, βρίσκει μια ακριβή αντιστοιχία για την τιμή αναζήτησης στο A2 και επιστρέφει μια τιμή από την 5η στήλη της ίδιας γραμμής, η οποία είναι το κελί E2.
Σημαντική σημείωση! Για να λειτουργήσει σωστά ο τύπος, table_array (A2:E4) του VLOOKUP και lookup_array του MATCH (A1:E1) πρέπει να έχει τον ίδιο αριθμό στηλών, διαφορετικά ο αριθμός που περνάει το MATCH στο col_index_num θα είναι λανθασμένη (δεν θα αντιστοιχεί στη θέση της στήλης στο table_array ).
Συνάρτηση XLOOKUP για αναζήτηση σε γραμμές και στήλες
Πρόσφατα η Microsoft εισήγαγε μια ακόμη συνάρτηση στο Excel που προορίζεται να αντικαταστήσει όλες τις υπάρχουσες συναρτήσεις αναζήτησης, όπως οι VLOOKUP, HLOOKUP και INDEX MATCH. Μεταξύ άλλων, η XLOOKUP μπορεί να εξετάσει την τομή μιας συγκεκριμένης γραμμής και στήλης:
XLOOKUP( vlookup_value , vlookup_column_range , XLOOKUP( hlookup_value , hlookup_row_range , data_array ))Για το σύνολο δεδομένων του δείγματός μας, ο τύπος έχει ως εξής:
=XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))
Σημείωση. Επί του παρόντος, το XLOOKUP είναι μια λειτουργία beta, η οποία είναι διαθέσιμη μόνο στους συνδρομητές του Office 365 που συμμετέχουν στο πρόγραμμα Office Insiders.
Πώς λειτουργεί αυτή η φόρμουλα
Ο τύπος χρησιμοποιεί τη δυνατότητα του XLOOKUP να επιστρέφει μια ολόκληρη γραμμή ή στήλη. Η εσωτερική συνάρτηση αναζητά το έτος-στόχο στη γραμμή επικεφαλίδας και επιστρέφει όλες τις τιμές για το έτος αυτό (σε αυτό το παράδειγμα, για το έτος 1980). Οι τιμές αυτές πηγαίνουν στη γραμμή return_array όρισμα του εξωτερικού XLOOKUP:
XLOOKUP(H1, A2:A4, {22000;25000;700}))
Η εξωτερική συνάρτηση XLOOKUP αναζητά το ζώο-στόχο στις επικεφαλίδες των στηλών και επιστρέφει την τιμή στην ίδια θέση από τη σειρά return_array.
Τύπος SUMPRODUCT για αμφίδρομη αναζήτηση
Η συνάρτηση SUMPRODUCT είναι σαν ελβετικό μαχαίρι στο Excel - μπορεί να κάνει τόσα πολλά πράγματα πέρα από τον καθορισμένο σκοπό της, ειδικά όταν πρόκειται για την αξιολόγηση πολλαπλών κριτηρίων.
Για να αναζητήσετε δύο κριτήρια, σε γραμμές και στήλες, χρησιμοποιήστε αυτόν τον γενικό τύπο:
SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )Για να εκτελέσετε μια αναζήτηση 2 κατευθύνσεων στο σύνολο δεδομένων μας, ο τύπος έχει ως εξής:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)
Η παρακάτω σύνταξη θα λειτουργήσει επίσης:
=SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)
Πώς λειτουργεί αυτή η φόρμουλα
Στο επίκεντρο του τύπου, συγκρίνουμε δύο τιμές αναζήτησης με τις επικεφαλίδες των γραμμών και των στηλών (το ζώο-στόχος στο H1 με όλα τα ονόματα ζώων στα A2:A4 και το έτος-στόχος στο H2 με όλα τα έτη στα B1:E1):
(A2:A4=H1) * (B1:E1=H2)
Αυτό οδηγεί σε 2 πίνακες τιμών TRUE και FALSE, όπου οι τιμές TRUE αντιπροσωπεύουν ταυτίσεις:
{FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE,FALSE}
Η πράξη πολλαπλασιασμού εξαναγκάζει τις τιμές TRUE και FALSE σε 1 και 0 και παράγει έναν δισδιάστατο πίνακα 4 στηλών και 3 γραμμών (οι γραμμές χωρίζονται με άνω και κάτω τελεία και κάθε στήλη δεδομένων με κόμμα):
{0,0,0,0;0,0,0,0;0,1,0,0}
Οι συναρτήσεις SUMPRODUCT πολλαπλασιάζουν τα στοιχεία του παραπάνω πίνακα με τα στοιχεία των B2:E4 στις ίδιες θέσεις:
{0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}
Και επειδή ο πολλαπλασιασμός με το μηδέν δίνει μηδέν, μόνο το στοιχείο που αντιστοιχεί στο 1 στον πρώτο πίνακα επιβιώνει:
SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})
Τέλος, η SUMPRODUCT προσθέτει τα στοιχεία του πίνακα που προκύπτει και επιστρέφει την τιμή 2000.
Σημείωση. Εάν ο πίνακάς σας έχει περισσότερες από μία επικεφαλίδες γραμμών ή/και στηλών με το ίδιο όνομα, ο τελικός πίνακας θα περιέχει περισσότερους από έναν αριθμούς εκτός του μηδενός και όλοι αυτοί οι αριθμοί θα αθροιστούν. Ως αποτέλεσμα, θα λάβετε ένα άθροισμα τιμών που πληρούν και τα δύο κριτήρια. Αυτό είναι που κάνει τον τύπο SUMPRODUCT διαφορετικό από τους τύπους INDEX MATCH MATCH και VLOOKUP, οι οποίοι επιστρέφουν την πρώτη αντιστοιχία που βρέθηκε.
Αναζήτηση πινάκων με ονομαστικές περιοχές (ρητή διασταύρωση)
Ένας ακόμη απίστευτα απλός τρόπος για να κάνετε αναζήτηση πίνακα στο Excel είναι η χρήση ονομαστικών περιοχών:
Μέρος 1: Ονομασία στηλών και γραμμών
Ο ταχύτερος τρόπος για να ονομάσετε κάθε γραμμή και κάθε στήλη του πίνακα είναι ο εξής:
- Επιλέξτε ολόκληρο τον πίνακα (A1:E4 στην περίπτωσή μας).
- Στο Τύποι στην καρτέλα Καθορισμένα ονόματα ομάδα, κάντε κλικ στο Δημιουργία από επιλογή ή πατήστε τη συντόμευση Ctrl + Shift + F3.
- Στο Δημιουργία ονομάτων από επιλογή παράθυρο διαλόγου, επιλέξτε Επάνω σειρά και Αριστερή στήλη, και κάντε κλικ στο OK.
Αυτό δημιουργεί αυτόματα ονόματα με βάση τις επικεφαλίδες των γραμμών και των στηλών. Ωστόσο, υπάρχουν ορισμένες επιφυλάξεις:
- Εάν οι επικεφαλίδες των στηλών ή/και των γραμμών σας είναι αριθμοί ή περιέχουν συγκεκριμένους χαρακτήρες που δεν επιτρέπονται στα ονόματα του Excel, τα ονόματα για τις εν λόγω στήλες και γραμμές δεν θα δημιουργηθούν. Για να δείτε έναν κατάλογο των δημιουργημένων ονομάτων, ανοίξτε τη Διαχείριση ονομάτων ( Ctrl + F3 ). Εάν λείπουν ορισμένα ονόματα, ορίστε τα χειροκίνητα, όπως εξηγείται στην ενότητα Πώς να ονομάσετε μια περιοχή στο Excel.
- Εάν ορισμένες από τις επικεφαλίδες γραμμών ή στηλών σας περιέχουν κενά, τα κενά θα αντικατασταθούν με υπογράμμιση, για παράδειγμα, Polar_bear .
Για τον πίνακα του δείγματός μας, το Excel δημιούργησε αυτόματα μόνο τα ονόματα των γραμμών. Τα ονόματα των στηλών πρέπει να δημιουργηθούν χειροκίνητα επειδή οι επικεφαλίδες των στηλών είναι αριθμοί. Για να το ξεπεράσετε αυτό, μπορείτε απλά να προτάξετε τους αριθμούς με υπογράμμιση, όπως _1990 .
Ως αποτέλεσμα, έχουμε τις ακόλουθες ονομαστικές σειρές:
Μέρος 2: Φτιάξτε έναν τύπο αναζήτησης πίνακα
Για να τραβήξετε μια τιμή στο σημείο τομής μιας δεδομένης γραμμής και στήλης, απλώς πληκτρολογήστε έναν από τους ακόλουθους γενικούς τύπους σε ένα κενό κελί:
= row_name column_nameΉ το αντίστροφο:
= column_name row_nameΓια παράδειγμα, για να υπολογίσουμε τον πληθυσμό των γαλάζιων φαλαινών το 1990, ο τύπος είναι τόσο απλός όσο:
=Blue_whale _1990
Αν κάποιος χρειάζεται πιο λεπτομερείς οδηγίες, τα παρακάτω βήματα θα σας καθοδηγήσουν στη διαδικασία:
- Σε ένα κελί όπου θέλετε να εμφανιστεί το αποτέλεσμα, πληκτρολογήστε το σύμβολο ισότητας (=).
- Αρχίστε να πληκτρολογείτε το όνομα της γραμμής-στόχου, π.χ, Blue_whale Αφού πληκτρολογήσετε μερικούς χαρακτήρες, το Excel θα εμφανίσει όλα τα υπάρχοντα ονόματα που ταιριάζουν με την εισαγωγή σας. Κάντε διπλό κλικ στο επιθυμητό όνομα για να το εισαγάγετε στον τύπο σας:
- Μετά το όνομα της γραμμής, πληκτρολογήστε ένα χώρος , το οποίο λειτουργεί ως το τελεστής τομής σε αυτή την περίπτωση.
- Εισάγετε το όνομα της στήλης-στόχου ( _1990 στην περίπτωσή μας).
- Μόλις εισαχθούν τα ονόματα των γραμμών και των στηλών, το Excel θα επισημάνει την αντίστοιχη γραμμή και στήλη του πίνακα και θα πατήσετε Enter για να ολοκληρώσετε τον τύπο:
Η αναζήτηση του πίνακα έχει ολοκληρωθεί και το παρακάτω στιγμιότυπο οθόνης δείχνει το αποτέλεσμα:
Αυτός είναι ο τρόπος αναζήτησης σε γραμμές και στήλες στο Excel. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!
Διαθέσιμες λήψεις
Βιβλίο εργασίας δείγματος αναζήτησης 2 διαστάσεων