Daten basierend auf dem übereinstimmenden Datumsbereich zurückgeben

Daten basierend auf dem übereinstimmenden Datumsbereich zurückgeben

Unsere Gruppe verfügt über eine Excel-Tabelle, die zur Nachverfolgung wechselnder Zuständigkeiten verwendet wird. Ein einfaches Beispiel würde folgendermaßen aussehen:

  • Spalte A:STARTverfügt über Daten, die den Beginn des durch die einzelnen Positionen dargestellten Zeitraums definieren.
  • Spalte B:ENDEverfügt über Daten, die das Ende des durch die einzelnen Positionen dargestellten Zeitraums definieren.
  • Spalte C:Zessionarhat Zeichenfolgen, die die Person darstellen, die der angegebenen Verantwortung während des durch START und END in derselben Zeile definierten Zeitraums zugewiesen ist.

Die Liste selbst istnormalerweiseaufsteigend nach START-Datum sortiert. Es ist jedoch möglich, dass das Blatt am Ende neu angeordnet wird.

Zwischen den in der Liste definierten Zeiträumen darf es keine Überschneidungen geben.

Ich möchte einen Informationsabschnitt mit drei Werten (in separaten Zellen) hinzufügen:

  • VORHERIGEwäre der Zessionar, der dem Zeitraum unmittelbar vor dem aktuellen entspricht.
  • AKTUELLwäre der aktuell verantwortliche Zessionar.
  • NÄCHSTEwäre der Zessionar, der dem Zeitraum nach dem entspricht, in dem wir uns gerade befinden.

Vorausgesetzt, dass die Tabelle in der richtigen Reihenfolge bleibt (aufsteigend nach START), sollte es einfach sein, PREVIOUS und NEXT zurückzugeben, nachdem die Formel für CURRENT herausgefunden wurde. Aber ich bin mir auch nicht sicher, wo ich dafür genau anfangen soll.

Antwort1

ICHdenkendas wird funktionieren, um Strom zu finden. Ich habe es bis zu einem gewissen Punkt getestet, aber binratendass das Ignorieren einer Eigenschaft in diesem Fall kein Problem darstellt.

Fügen Sie zunächst eine Spalte zwischen B und C hinzu (der Bevollmächtigte wird fortan zu D). Tragen Sie in diese Spalte die folgende Formel ein:

=IF(NOW()-A2>0,IF(NOW()-B2<0,"Yes","No"),"No")

Das sollte eine Zeile mit „Ja“ und den Rest mit „Nein“ ergeben (für den aktuellen Slot).

Geben Sie nun in Ihrem Feld für den aktuellen Beauftragten Folgendes ein:

=INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0), 2)

Für vorherige: =INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0) - 1, 2)
Für nächste: =INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0) + 1, 2)

Normalerweise möchte MATCH die Suchspalte sortieren, aber da wir immer nur ein Ja in der Spalte haben sollten,denken(das ist der Rateteil), dass wir diese Einschränkung ignorieren können.

Meine Testtabelle bestand nur aus drei Zeilen, Ihre Abweichung kann also abweichen.

Sie müssen eine Fehlerprüfung für das Vorherige durchführen, wenn „Aktuell“ die erste Zeile ist usw. und die Benennung Ihres Quellbereichs ist wahrscheinlich eine gute Idee.

Möglicherweise möchten Sie die zusätzliche Spalte auch ausblenden.

Antwort2

Geordnete Eingabe:

Aktueller Beauftragter: currRow=match(now(),A:A,1)- Da Ihre Daten sortiert sind, wird die aktuelle Zeile gefunden, eine Hilfsspalte ist nicht erforderlich. Setzen Sie den Namen der Zelle, die dies zählt, auf currRow, um die Referenzierung zu erleichtern.
Beauftragter: =indirect("C"& currRow + x)- x: -1, 0, 1 für vorherige, aktuelle und nächste Zeilen.

Ungeordnete Eingabe:

Aktuelle Zeile: currRow=match(max(if(A:A>now(),"",A:A)),A:A,0)– dies ist eine Array-Formel, Sie müssen sie also mit STRG+UMSCHALT+EINGABE eingeben.
Aktueller Bearbeiter: Dieselbe Formel wie zuvor.
Vorherige: =indirect("C" & match(max(if(A:A>=indirect("A" & currRow),"",A:A)),A:A,0))– ebenfalls eine Array-Formel.
Nächste: =indirect("C" & match(min(if(A:A<=indirect("A" & currRow),"",A:A)),A:A,0))– und immer noch eine Array-Formel.

verwandte Informationen