Excel 2013 - Wie kann ein Lookup das erste Datum nach einem angegebenen Datum zurückgeben?

354
Derek

Daher möchte ich eine Funktion erstellen, die nach einem eindeutigen ID-Code in einer Spalte sucht und einen entsprechenden Zeitstempel aus einer anderen Spalte zurückgibt. Jedem eindeutigen ID-Code sind jedoch mehrere Zeitstempel zugeordnet. Ich möchte nur den Zeitstempel zurückgeben, der unmittelbar einer bestimmten Zeit folgt.

Für die eindeutige ID "9f45Q3" sind beispielsweise 4 Zeitstempel hinzugefügt:

  • 11:00
  • 11:15
  • 11:40
  • 11:55

Ich muss einen Weg finden, Excel mitzuteilen, dass der Zeitstempel für "9f45Q3" zurückgegeben werden soll, der unmittelbar nach 11:30 Uhr folgt. (Nur eine beliebige Uhrzeit zum Erklären) In diesem Fall möchte ich, dass Excel um 11:40 zurückgegeben wird, da es meiner angegebenen Zeit am unmittelbarsten folgt.

Jede Hilfe wäre sehr dankbar. Vielen Dank!

0
Sind die Zeitstempel in einer einzelnen Spalte oder sind sie in mehreren Spalten enthalten? Nayrb vor 6 Jahren 0
Zeitstempel befinden sich alle in einer einzelnen Spalte und in separaten Zeilen. Im Fall des Beispiels wäre die eindeutige ID in allen 4 Zeilen identisch, mit jeweils unterschiedlichen Zeitstempeln Derek vor 6 Jahren 0

1 Antwort auf die Frage

0
Forward Ed

Verwenden Sie INDEX und AGGREGATE

Verwenden Sie Aggregat, um die Zeilennummer zu bestimmen, die Ihren Kriterien oder der zweiten oder der dritten entspricht. In Ihrem Fall an zweiter Stelle. AGGREGATE führt Array-ähnliche Operationen aus, sodass Sie die Verwendung vollständiger Spaltenverweise vermeiden möchten.

=AGGREGATE(14,6, row(range of interest)/(true condition check(range of interest)*true condition check n (range of interest)),2)  14 tells AGGREGATE to sort an array of results from smallest to largest.  6 tells AGGREGATE to ignore any errors and exclude them from the array of results)  ROW(range of interest) will return the row number corresponding to the current calculation  Condition check will be some formula you come up with that returns a TRUE or FALSE result. If it is false it will result in a divide by 0 calculation which the 6 will tell aggregate to ignore. You can apply multiple conditions and separate them by a * which will act as an AND function. 2 tells AGGREGATE to return the 2nd result in the sorted array. So in this case it should be the second row number that matches your results. 

Als Nächstes müssen Sie die AGGREGATE-Funktion in INDEX einfügen, um die gewünschten Informationen zurückzugeben. Da INDEX keine Array-ähnlichen Berechnungen durchführt, können vollständige Spaltenreferenzen verwendet werden. Nehmen wir an, Ihr Zeitstempel befindet sich in Spalte B. Ihre Indexformel würde ungefähr so ​​aussehen:

=INDEX(B:B,AGGREGATE()) 

Am Ende wurde angenommen, dass sich Ihre ID im A2: A8-Bereich befand und Ihr Zeitstempel im B2: B8-Bereich lag. Der von Ihnen gesuchte ID-Code lag in C1. Ihre Formel könnte folgendermaßen aussehen:

=INDEX(B:B,AGGREGATE(14,6,ROW(A2:A8)/(A2:A8=C1),2) 

Wenn Sie jetzt ein wenig Fehlerprüfung hinzufügen möchten, können Sie die Funktion IFERROR verwenden und so aussehen lassen:

=IFERROR(INDEX(B:B,AGGREGATE(14,6,ROW(A2:A8)/(A2:A8=C1),2),"Could NOT find the darned thing")