
Γενική φόρμουλα
=LOOKUP(2,1/(ISNUMBER(FIND(filename,range))),range)
Περίληψη
Για να αναζητήσετε την πιο πρόσφατη έκδοση αρχείου σε μια λίστα, μπορείτε να χρησιμοποιήσετε έναν τύπο που βασίζεται στη συνάρτηση LOOKUP μαζί με τις συναρτήσεις ISNUMBER και FIND. Στο παράδειγμα που εμφανίζεται, ο τύπος στο κελί G7 είναι:
=LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files)
όπου "αρχεία" είναι η ονομαζόμενη περιοχή B5: B11.
Συμφραζόμενα
Σε αυτό το παράδειγμα, έχουμε έναν αριθμό εκδόσεων αρχείων σε έναν πίνακα με ημερομηνία και όνομα χρήστη. Σημειώστε ότι τα ονόματα αρχείων επαναλαμβάνονται με έναν μετρητή στο τέλος ως αριθμό αναθεώρησης - 001, 002, 003 κ.λπ.
Δεδομένου ενός ονόματος αρχείου, θέλουμε να ανακτήσουμε το όνομα της τελευταίας ή της τελευταίας αναθεώρησης. Υπάρχουν δύο προκλήσεις:
- Η πρόκληση είναι οι κωδικοί έκδοσης στο τέλος των ονομάτων αρχείων καθιστούν δυσκολότερη την αντιστοίχιση του ονόματος αρχείου.
- Από προεπιλογή, οι τύποι αντιστοίχισης του Excel θα επιστρέψουν τον πρώτο αγώνα και όχι τον τελευταίο αγώνα.
Για να ξεπεράσουμε αυτές τις προκλήσεις, πρέπει να χρησιμοποιήσουμε μερικές δύσκολες τεχνικές.
Εξήγηση
Αυτός ο τύπος χρησιμοποιεί τη συνάρτηση LOOKUP για να βρει και να ανακτήσει το τελευταίο όνομα αρχείου που ταιριάζει. Η τιμή αναζήτησης είναι 2 και το lookup_vector δημιουργείται με αυτό:
1/(ISNUMBER(FIND(G6,files)))
Μέσα σε αυτό το απόσπασμα, η συνάρτηση FIND αναζητά την τιμή στο G6 εντός του ονομασμένου εύρους "αρχεία" (B5: B11). Το αποτέλεσμα είναι ένας πίνακας ως εξής:
(1;#VALUE!;1;1;#VALUE!;#VALUE!;1)
Εδώ, ο αριθμός 1 αντιπροσωπεύει μια αντιστοίχιση και το σφάλμα #VALUE αντιπροσωπεύει ένα όνομα αρχείου που δεν ταιριάζει. Αυτός ο πίνακας μπαίνει στη συνάρτηση ISNUMBER και βγαίνει ως εξής:
(TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Οι τιμές σφάλματος είναι τώρα FALSE και ο αριθμός 1 είναι τώρα TRUE. Αυτό ξεπερνά την πρόκληση # 1, τώρα έχουμε έναν πίνακα που δείχνει με σαφήνεια ποια αρχεία στη λίστα περιέχουν το όνομα αρχείου που σας ενδιαφέρει.
Στη συνέχεια, ο πίνακας χρησιμοποιείται ως παρονομαστής με 1 ως αριθμητής. Το αποτέλεσμα μοιάζει με αυτό:
(1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1)
που πηγαίνει στο LOOKUP ως το lookup_vector. Αυτή είναι μια δύσκολη λύση για την πρόκληση # 2. Η συνάρτηση LOOKUP λειτουργεί μόνο σε λειτουργία αντιστοίχισης κατά προσέγγιση και αγνοεί αυτόματα τις τιμές σφάλματος. Αυτό σημαίνει ότι με το 2 ως τιμή αναζήτησης, το VLOOKUP θα προσπαθήσει να βρει 2, να αποτύχει και να επιστρέψει στον προηγούμενο αριθμό (στην περίπτωση αυτή ταιριάζει με το τελευταίο 1 στη θέση 7). Τέλος, το LOOKUP χρησιμοποιεί το 7 σαν ένα ευρετήριο για να ανακτήσει το 7ο αρχείο στη λίστα αρχείων.
Χειρισμός κενών αναζητήσεων
Παραδόξως, η συνάρτηση FIND επιστρέφει 1 εάν η τιμή αναζήτησης είναι μια κενή συμβολοσειρά (""). Για να προφυλάξετε από μια ψευδή αντιστοίχιση, μπορείτε να τυλίξετε τον τύπο σε IF και να δοκιμάσετε μια κενή αναζήτηση:
=IF(G6"",LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files),"")