Τύπος Excel: XLOOKUP το αργότερο κατά ημερομηνία -

Γενική φόρμουλα

=XLOOKUP(max,dates,results,,-1) // latest match by date

Περίληψη

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

=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)

όπου η ημερομηνία (C5: C15), το στοιχείο (B5: B15) και η τιμή (D5: D15) ονομάζονται εύρη.

Εξήγηση

Το XLOOKUP προσφέρει πολλές δυνατότητες που το καθιστούν εξαιρετικά καλό για πιο περίπλοκες αναζητήσεις. Σε αυτό το παράδειγμα, θέλουμε την πιο πρόσφατη τιμή για ένα στοιχείο κατά ημερομηνία. Εάν τα δεδομένα ταξινομήθηκαν κατά ημερομηνία σε αύξουσα σειρά, αυτό θα ήταν πολύ απλό. Ωστόσο, σε αυτήν την περίπτωση, τα δεδομένα δεν ταξινομούνται.

Από προεπιλογή, το XLOOKUP θα επιστρέψει τον πρώτο αγώνα σε ένα σύνολο δεδομένων. Για να λάβουμε τον τελευταίο αγώνα, μπορούμε να ορίσουμε το προαιρετικό όρισμα search_mode, σε -1 ώστε το XLOOKUP να αναζητήσει "τελευταία στην πρώτη". Ωστόσο, δεν μπορούμε να χρησιμοποιήσουμε αυτήν την προσέγγιση εδώ, επειδή δεν υπάρχει καμία εγγύηση ότι η τελευταία τιμή για ένα στοιχείο εμφανίζεται τελευταία.

Αντ 'αυτού, μπορούμε να ρυθμίσουμε το προαιρετικό match_mode ορίσματος σε -1 για να επιβάλουμε μια κατά προσέγγιση αντιστοίχιση του "ακριβούς ή επόμενου μικρότερου" και να προσαρμόσουμε την τιμή αναζήτησης και τον πίνακα αναζήτησης όπως εξηγείται παρακάτω. Ο τύπος στο G5, αντιγράφεται, είναι:

=XLOOKUP(MAX(date),(item=F5)*date,price,,-1)

Εργαζόμενοι με επιχειρήματα ένα προς ένα, η lookup_value είναι η μεγαλύτερη (τελευταία) ημερομηνία στα δεδομένα:

MAX(date) // get max date value

Το lookup_array προέρχεται από μια έκφραση δυαδικής λογικής:

(item=F5)*date

Συγκρίνοντας κάθε στοιχείο με την τιμή στο F5, "Belt", λαμβάνουμε μια σειρά τιμών TRUE / FALSE:

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

όπου TRUE τιμές αντιπροσωπεύουν καταχωρήσεις για το "Belt". Αυτός ο πίνακας λειτουργεί σαν φίλτρο. Όταν πολλαπλασιάζεται με τις τιμές στην ονομαστική ημερομηνία εύρους , οι τιμές TRUE / FALSE αξιολογούνται σε 1 και 0:

=(1;0;0;0;0;0;1;0;1;0;0)*date

Το αποτέλεσμα είναι ένας πίνακας που περιέχει μόνο μηδενικά και ημερομηνίες για ζώνες:

=(43484;0;0;0;0;0;43561;0;43671;0;0)

Σημείωση: οι σειριακοί αριθμοί είναι έγκυρες ημερομηνίες Excel.

Αυτός ο πίνακας παραδίδεται απευθείας στο XLOOKUP ως όρισμα lookup_array.

Το return_array είναι η ονομαστική τιμή εύρους (D5: D15)

Το προαιρετικό όρισμα not_found δεν παρέχεται.

Το Match_mode ορίζεται σε -1, για ακριβή αντιστοίχιση ή επόμενο μικρότερο στοιχείο.

Το XLOOKUP αναζητά τη συστοιχία αναζήτησης για τη μέγιστη τιμή ημερομηνίας. Δεδομένου ότι ο πίνακας έχει ήδη φιλτραριστεί για να αποκλείσει ημερομηνίες που δεν σχετίζονται με το "Belt", το XLOOKUP βρίσκει απλώς την καλύτερη αντιστοίχιση (είτε την ακριβή ημερομηνία ή την επόμενη μικρότερη ημερομηνία) που αντιστοιχεί στην τελευταία ημερομηνία.

Το τελικό αποτέλεσμα είναι η τιμή που σχετίζεται με την τελευταία ημερομηνία. Ο τύπος θα συνεχίσει να λειτουργεί όταν τα δεδομένα ταξινομηθούν με οποιαδήποτε σειρά.

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