Ich versuche, eine mit einem Unternehmen verknüpfte Punktzahl wiederherzustellen, möchte aber nur den neuesten Eintrag. Wenn überhaupt keine Punktzahl vorhanden ist, soll die Zelle leer sein.
Firmen | Punktzahl | Datum |
---|---|---|
A | 3.5 | 01.02.2020 |
A | 4.3 | 16.01.2019 |
Wenn ich in diesem Fall die Punktzahl von Unternehmen A suche, möchte ich, dass sie 3,5 zurückgibt. Wenn ich nach Unternehmen D suche, möchte ich, dass die Zelle leer bleibt.
Vielen Dank im Voraus für jede Hilfe!!
Antwort1
Antwort2
Verwenden XLOOKUP()
:
=XLOOKUP(F2, SORTBY(A2:A41, C2:C41), SORT(C2:C41), "", 0, -1)
SORTBY()
bringt Ihr Nachschlagearray, A2:A41 in der Formel, in die Reihenfolge nach Spalte C, der Spalte, aus der Sie Werte benötigen. Sie sortieren es so, dass die letzte Instanz des Nachschlagewerts XLOOKUP()
gefunden wird, wenn Sie von oben nach unten suchen, und nicht ein zufälliger Eintrag.
Dies stellen Sie sicher, indem Sie NACH Ihrer Rückgabewertspalte, in diesem Fall Spalte C (also C2:C41 in der Formel), in aufsteigender Reihenfolge sortieren, d. h. der niedrigste Wert zuerst, der höchste zuletzt. Da diese Spalte Datumsangaben enthält und Excel Datumsangaben als Zahlen betrachtet, verursacht dies keine Probleme.
An diesem Punkt sieht Excel für jeden Satz von Nachschlagebereichswerten den Datenbereich mit dem Datum mit dem höchsten Wert bzw. dem aktuellsten Datum am Ende des erstellten virtuellen Datenbereichs.
XLOOKUP()
wird dann angewiesen, vom Ende zum Anfang (von unten nach oben) zu suchen. Wenn es also den angegebenen Nachschlagewert findet, findet es den letzten davon in jedem Satz dieser Werte im virtuellen Datenbereich der Formel. Es wird also den entsprechenden Datensatz in der ebenfalls virtuellen Ergebnisspalte zurückgeben. Da dieser ebenfalls sortiert wurde, diesmal jedoch nicht SORT()
mehr, und da die beiden Sortierungen von derselben „Sortieren nach“-Spalte durchgeführt wurden, stimmt der Datensatz in Spalte C mit dem ursprünglichen Datensatz aus Spalte A überein: Mit anderen Worten, die Zeilen der Paare aus den beiden Spalten blieben zusammen, anstatt zu einem wirren Durcheinander zu werden.
Sie haben also einen virtuellen Datenbereich des Nachschlage-Arrays und des Ergebnis-Arrays erstellt, in dem die Paare übereinstimmen. Sie haben die beiden Arrays so sortiert, dass jeder Nachschlagewert mit seinen ähnlichen Werten gruppiert ist, wodurch aufgrund der Sortierung nach dem Ergebnis-Array sichergestellt wird, dass der letzte davon der gewünschte ist. Und da XLOOKUP()
vom Ende bis zum Anfang gesucht werden kann, ist es auffindbar.
Eigentlich könnten Sie die Sortierung in absteigender Reihenfolge durchführen, vom höchsten zum niedrigsten Datum für jeden Satz identischer Nachschlagewerte. Dann könnten Sie XLOOKUP()
von Anfang bis Ende suchen, wenn Sie einen Grund dafür hätten.