Excel-Formel: Letzte Dateiversion suchen -

Inhaltsverzeichnis

Generische Formel

=LOOKUP(2,1/(ISNUMBER(FIND(filename,range))),range)

Zusammenfassung

Um die neueste Dateiversion in einer Liste nachzuschlagen, können Sie eine Formel verwenden, die auf der LOOKUP-Funktion zusammen mit den Funktionen ISNUMBER und FIND basiert. In dem gezeigten Beispiel lautet die Formel in Zelle G7:

=LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files)

Dabei ist "Dateien" der benannte Bereich B5: B11.

Kontext

In diesem Beispiel sind einige Dateiversionen in einer Tabelle mit Datum und Benutzername aufgeführt. Beachten Sie, dass Dateinamen mit einem Zähler am Ende als Revisionsnummer wiederholt werden - 001, 002, 003 usw.

Bei gegebenem Dateinamen möchten wir den Namen der letzten oder letzten Revision abrufen. Es gibt zwei Herausforderungen:

  1. Die Herausforderung besteht darin, dass die Versionscodes am Ende der Dateinamen die Übereinstimmung mit dem Dateinamen erschweren.
  2. Standardmäßig geben Excel-Übereinstimmungsformeln die erste Übereinstimmung zurück, nicht die letzte Übereinstimmung.

Um diese Herausforderungen zu bewältigen, müssen wir einige knifflige Techniken anwenden.

Erläuterung

Diese Formel verwendet die LOOKUP-Funktion, um den letzten übereinstimmenden Dateinamen zu finden und abzurufen. Der Lookup-Wert ist 2, und der lookup_vector wird folgendermaßen erstellt:

1/(ISNUMBER(FIND(G6,files)))

In diesem Snippet sucht die FIND-Funktion nach dem Wert in G6 innerhalb des benannten Bereichs "files" (B5: B11). Das Ergebnis ist ein Array wie folgt:

(1;#VALUE!;1;1;#VALUE!;#VALUE!;1)

Hier steht die Zahl 1 für eine Übereinstimmung, und der Fehler #VALUE steht für einen nicht übereinstimmenden Dateinamen. Dieses Array geht in die ISNUMBER-Funktion und wird folgendermaßen ausgegeben:

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

Fehlerwerte sind jetzt FALSE und die Nummer 1 ist jetzt TRUE. Dies überwindet Herausforderung Nr. 1. Wir haben jetzt ein Array, das klar anzeigt, welche Dateien in der Liste den gewünschten Dateinamen enthalten.

Als nächstes wird das Array als Nenner mit 1 als Zähler verwendet. Das Ergebnis sieht folgendermaßen aus:

(1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1)

Das geht in LOOKUP als lookup_vector. Dies ist eine knifflige Lösung, um # 2 herauszufordern. Die LOOKUP-Funktion arbeitet nur im ungefähren Übereinstimmungsmodus und ignoriert automatisch Fehlerwerte. Dies bedeutet, dass VLOOKUP mit 2 als Suchwert versucht, 2 zu finden, fehlschlägt und zur vorherigen Nummer zurückkehrt (in diesem Fall mit der letzten 1 auf Position 7 übereinstimmt). Schließlich verwendet LOOKUP 7 wie einen Index, um die 7. Datei in der Liste der Dateien abzurufen.

Umgang mit leeren Lookups

Seltsamerweise gibt die FIND-Funktion 1 zurück, wenn der Suchwert eine leere Zeichenfolge ("") ist. Um sich vor einer falschen Übereinstimmung zu schützen, können Sie die Formel in IF einschließen und auf eine leere Suche testen:

=IF(G6"",LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files),"")

Interessante Beiträge...