Τύπος Excel: XLOOKUP με σύνθετα πολλαπλά κριτήρια -

Πίνακας περιεχομένων

Περίληψη

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

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16)

Με τις προεπιλεγμένες ρυθμίσεις XLOOKUP για λειτουργία αντιστοίχισης (ακριβής) και λειτουργία αναζήτησης (πρώτη έως τελευταία) ο τύπος αντιστοιχεί στην πρώτη εγγραφή όπου:

ο λογαριασμός ξεκινά με "x" ΚΑΙ η περιοχή είναι "ανατολική" και ο μήνας ΔΕΝ είναι Απρίλιος.

που είναι η τέταρτη εγγραφή (σειρά 8) στο παράδειγμα που εμφανίζεται.

Εξήγηση

Κανονικά, η συνάρτηση XLOOKUP έχει ρυθμιστεί ώστε να αναζητά μια τιμή σε έναν πίνακα αναζήτησης που υπάρχει στο φύλλο εργασίας. Ωστόσο, όταν τα κριτήρια που χρησιμοποιούνται για την αντιστοίχιση μιας τιμής γίνονται πιο περίπλοκα, μπορείτε να χρησιμοποιήσετε λογική boolean για να δημιουργήσετε έναν πίνακα αναζήτησης εν συντομία που αποτελείται μόνο από 1s και 0s και, στη συνέχεια, αναζητήστε την τιμή 1. Αυτή είναι η προσέγγιση που χρησιμοποιείται σε αυτό το παράδειγμα:

=XLOOKUP(1,boolean_array,result_array)

Σε αυτό το παράδειγμα, τα απαιτούμενα κριτήρια είναι:

ο λογαριασμός ξεκινά με "x" ΚΑΙ η περιοχή είναι "ανατολική" και ο μήνας ΔΕΝ είναι Απρίλιος.

Για καθένα από τα τρία ξεχωριστά κριτήρια παραπάνω, χρησιμοποιούμε μια ξεχωριστή λογική έκφραση. Η πρώτη έκφραση χρησιμοποιεί τη συνάρτηση LEFT για να ελέγξει εάν ο λογαριασμός ξεκινά με "x":

LEFT(B5:B16)="x" // account begins with "x"

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

(TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE)

Η δεύτερη έκφραση ελέγχει εάν η περιοχή είναι "ανατολικά" χρησιμοποιώντας τον τελεστή ίσο προς

C5:C16="east" // region is east

Όπως και πριν, λαμβάνουμε έναν άλλο πίνακα με δώδεκα τιμές TRUE FALSE:

(FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE)

Η τρίτη έκφραση πρέπει να αποκλείσει τον μήνα Απρίλιο. Ο ευκολότερος τρόπος για να γίνει αυτό είναι να δοκιμάσετε τον μήνα Απρίλιο απευθείας με τη συνάρτηση MONTH:

MONTH(D5:D16)=4 // month is April

Στη συνέχεια, χρησιμοποιήστε τη συνάρτηση NOT για να αντιστρέψετε το αποτέλεσμα:

NOT(MONTH(D5:D16)=4) // month is not April

που δημιουργεί έναν πίνακα που περιγράφει σωστά το "όχι τον Απρίλιο":

(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)

Στη συνέχεια, και οι τρεις πίνακες πολλαπλασιάζονται μαζί και η λειτουργία μαθηματικών συγκεντρώνει τις τιμές TRUE και FALSE σε 1s και 0s:

(1;0;1;1;1;0;0;0;1;1;0;1)* (0;0;1;1;1;0;1;0;0;1;0;1)* (0;0;0;1;1;1;1;1;1;1;1;1)

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

(0;0;0;1;1;0;0;0;0;1;0;1)

Ο τύπος μπορεί τώρα να ξαναγραφεί ως εξής:

=XLOOKUP(1,(0;0;0;1;1;0;0;0;0;1;0;1),B5:E16)

Με 1 ως τιμή αναζήτησης και προεπιλεγμένες ρυθμίσεις για τη λειτουργία αντιστοίχισης (ακριβής) και τη λειτουργία αναζήτησης (πρώτη έως τελευταία), το XLOOKUP ταιριάζει με την πρώτη 1 (τέταρτη θέση) και επιστρέφει την αντίστοιχη σειρά στο πίνακα αποτελεσμάτων, που είναι B8: E8.

Τελευταίος αγώνας

Ορίζοντας το προαιρετικό όρισμα τρόπου αναζήτησης σε -1, μπορείτε να εντοπίσετε το "τελευταίο ταίριασμα" με τα ίδια κριτήρια όπως αυτό:

=XLOOKUP(1,(LEFT(B5:B16)="x")*(C5:C16="east")*NOT(MONTH(D5:D16)=4),B5:E16,,,-1)

ενδιαφέροντα άρθρα...