Grundlegendes zur Excel MATCH-Funktion - Numerisches Array muss nicht unbedingt sortiert sein

0

Diese oder eine ähnliche Excel MATCH-Formel finde ich in ein paar Antworten, die auf Superuser gepostet wurden.

=MATCH(99^99,B:B,1)

Dies gibt die Position der letzten Zelle in Spalte B zurück, die numerische Daten enthält (vorausgesetzt, in Spalte B ist kein Eintrag größer als 99 ^ 99).

Grundsätzlich wird erwartet, dass der größte Wert kleiner oder gleich dem Suchwert zurückgegeben wird. Allerdings habe ich Schwierigkeiten zu verstehen, wie diese Formel wirklich funktioniert! Wenn Match_Type (letzter Parameter) 1 ist, sollte das Array in aufsteigender Reihenfolge sortiert werden, damit diese Funktion funktioniert.

Es funktioniert also auch, wenn das Array nicht in aufsteigender Reihenfolge sortiert ist. Oder ist das der Trick? Behandelt es einfach das letzte Element als das einzige Element zum Vergleich, anstatt Fehler zurückzugeben, wenn das Array unsortiert ist? Vielen Dank.

patkim
quelle
Sie sollten MATCH(..,..,1)nur Arrays verwenden, die in aufsteigender Reihenfolge sortiert sind. Ansonsten sollten Sie keine Erwartungen an die Ausgabe haben.
Máté Juhász
2
Sie nutzen die Leichtgläubigkeit von Excel, um das zu bekommen, was Sie wollen. Sie geben Excel einen nicht vorhandenen großen Wert als Ziel und teilen Excel mit, dass die Daten sortiert sind. In Excel wird davon ausgegangen, dass der letzte Wert am nächsten ist, wenn keine Übereinstimmung gefunden wird (was niemals der Fall ist), sodass der letzte Wert zurückgegeben wird. Sie interessieren sich nicht für die tatsächlichen Werte, Sie möchten nur den letzten. Wenn Sie Excel also eine Lüge über die zu sortierenden Daten erzählen, erhalten Sie das, wonach Sie suchen.
Fixer1234
Ich denke, das funktioniert, weil Excel intern die binäre Suche verwenden muss und davon ausgeht, dass die Liste sortiert ist und nur eine binäre Suche durchführt, bis der letzte Wert gefunden ist.
Ramki