Τύπος Excel: Αναθεώρηση τελευταίου αρχείου αναζήτησης -

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

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

(=MAX(IF(ISERROR(SEARCH(H5&"*",files)),0,ROW(files)-ROW(INDEX(files,1,1))+1)))

Περίληψη

Για να βρείτε τη θέση (σειρά) της τελευταίας αναθεώρησης αρχείου σε έναν πίνακα, μπορείτε να χρησιμοποιήσετε έναν τύπο που βασίζεται σε διάφορες συναρτήσεις του Excel: MAX, IF, ISERROR, ROW και INDEX.

Στο παράδειγμα που εμφανίζεται, ο τύπος στο κελί H6 είναι:

(= MAX (IF (ISERROR (ΑΝΑΖΗΤΗΣΗ (H5 & "*", αρχεία)), 0, ROW (αρχεία) -ROW (INDEX (αρχεία, 1,1)) + 1)))

όπου "αρχεία" είναι το όνομα C4: C11.

Σημείωση: αυτός είναι ένας τύπος πίνακα και πρέπει να εισαχθεί με τον έλεγχο + shift + enter.

Συμφραζόμενα

Σε αυτό το παράδειγμα, έχουμε έναν αριθμό εκδόσεων αρχείων σε έναν πίνακα με ημερομηνία και όνομα χρήστη. Σημειώστε ότι τα ονόματα αρχείων επαναλαμβάνονται, εκτός από τον κωδικό που επισυνάπτεται στο τέλος για να αντιπροσωπεύει την έκδοση ("CA", "CB", "CC", "CD", κ.λπ.).

Για ένα δεδομένο αρχείο, θέλουμε να εντοπίσουμε τη θέση (αριθμός σειράς) για την τελευταία αναθεώρηση. Αυτό είναι ένα δύσκολο πρόβλημα, επειδή οι κωδικοί έκδοσης στο τέλος των ονομάτων αρχείων καθιστούν δυσκολότερη την αντιστοίχιση στο όνομα του αρχείου. Επίσης, από προεπιλογή, οι τύποι αντιστοίχισης του Excel θα επιστρέψουν τον πρώτο αγώνα και όχι τον τελευταίο αγώνα, οπότε πρέπει να αντιμετωπίσουμε αυτήν την πρόκληση με μερικές δύσκολες τεχνικές.

Εξήγηση

Στον πυρήνα αυτού του τύπου, δημιουργούμε μια λίστα αριθμών σειρών για ένα δεδομένο αρχείο. Στη συνέχεια, χρησιμοποιούμε τη συνάρτηση MAX για να λάβουμε τον μεγαλύτερο αριθμό σειράς, ο οποίος αντιστοιχεί στην τελευταία αναθεώρηση (τελευταία εμφάνιση) αυτού του αρχείου.

Για να βρούμε όλες τις εμφανίσεις ενός δεδομένου αρχείου, χρησιμοποιούμε τη συνάρτηση SEARCH, διαμορφωμένη με τον μπαλαντέρ αστερίσκου (*) για να ταιριάζει με το όνομα του αρχείου, αγνοώντας τους κωδικούς έκδοσης. Η ΑΝΑΖΗΤΗΣΗ θα ρίξει ένα VALUE σφάλμα όταν δεν βρεθεί κείμενο, οπότε ολοκληρώνουμε την αναζήτηση στο ISERROR:

ISERROR(SEARCH(H5&"*",files))

Αυτό έχει ως αποτέλεσμα μια σειρά τιμών ΑΛΗΘΗΣ και ΛΑΘΟΣ όπως:

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

Είναι σύγχυση, αλλά το TRUE αντιπροσωπεύει ένα σφάλμα (το κείμενο δεν βρέθηκε) και το FALSE αντιπροσωπεύει έναν αγώνα. Αυτό το αποτέλεσμα πίνακα τροφοδοτείται στη συνάρτηση IF ως λογική δοκιμή. Για τιμή εάν TRUE, χρησιμοποιούμε μηδέν και για τιμή αν είναι true, παρέχουμε αυτόν τον κωδικό, ο οποίος δημιουργεί σχετικούς αριθμούς σειρών για το εύρος με το οποίο συνεργαζόμαστε:

ROW(files)-ROW(INDEX(files,1,1))+1)

Στη συνέχεια, η συνάρτηση IF επιστρέφει μια σειρά τιμών όπως αυτή:

(1; 0; 3; 4; 0; 0; 7; 0)

Όλοι οι αριθμοί εκτός από το μηδέν αντιπροσωπεύουν αγώνες για το "filename1" - δηλ. Τον αριθμό σειράς εντός του ονομασμένου εύρους "αρχεία" όπου εμφανίζεται το "filename1".

Τέλος, χρησιμοποιούμε τη συνάρτηση MAX για να λάβουμε τη μέγιστη τιμή σε αυτόν τον πίνακα, η οποία είναι 7 σε αυτό το παράδειγμα.

Χρησιμοποιήστε το INDEX με αυτόν τον αριθμό σειράς για να ανακτήσετε πληροφορίες που σχετίζονται με την τελευταία αναθεώρηση (δηλ. Πλήρες όνομα αρχείου, ημερομηνία, χρήστης κ.λπ.).

Χωρίς όνομα εύρους

Τα εύρη με ονομασίες το καθιστούν γρήγορο και εύκολο να ρυθμίσετε έναν πιο σύνθετο τύπο, καθώς δεν χρειάζεται να εισάγετε διευθύνσεις κελιού με το χέρι. Ωστόσο, σε αυτήν την περίπτωση, χρησιμοποιούμε μια επιπλέον λειτουργία (INDEX) για να πάρουμε το πρώτο κελί της ονομασμένης περιοχής "αρχεία", η οποία περιπλέκει τα πράγματα λίγο. Χωρίς την ονομαστική περιοχή, ο τύπος μοιάζει με αυτό:

(=MAX(IF(ISERROR(SEARCH(H5&"*",C4:C11)),0,ROW(C4:C11)-ROW(C4)+1)))

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