Wie erhalte ich einen Verweis auf das letzte Auftreten eines Werts in einem Array in Excel?

7

Also wenn

A1: A5 = {3, 3, 4, 4, 5}

Welche Funktion könnte ich in B1 einfügen, um einen Verweis auf A4 (die Zelle mit dem letzten Vorkommen von 4) zu erhalten?

Däne O'Connor
quelle

Antworten:

5

Ich gehe davon aus, dass A1: A5 in aufsteigender Reihenfolge sortiert sind. In diesem Fall können Sie die folgende Formel verwenden:

=ADDRESS(ROW(A1)-1+MATCH(4,A1:A5,1),COLUMN(A1))

Dies ergibt eine Ausgabe von $ A $ 4.

So funktioniert das:

MATCH(4,A1:A5,1)findet den Index des größten Wertes, der <= 4 ist, unter der Annahme, dass A1: A5 in aufsteigender Reihenfolge sortiert ist. Dies bedeutet wirklich, dass der erste Wert größer als 4 ist und einfach den Index vor diesem Index zurückgibt.

ADDRESS(row,col)konvertiert eine Zeilennummer und eine Spaltennummer in eine Zellreferenz. Für die Spaltennummer habe ich einfach die Spalte der Liste verwendet : COLUMN(A1). Für die Zeilennummer habe ich den von der MATCHFunktion zurückgegebenen Index als Offset vom Anfang der Liste ( ROW(A1)-1) verwendet. Sie könnten es weglassen ROW(A1)-1und es würde in diesem Fall immer noch funktionieren, aber es würde fehlschlagen, sobald Ihre Liste an einer anderen Stelle als in Zeile 1 beginnt.

Beachten Sie, dass Sie Folgendes verwenden müssen, um diesen Referenzwert an einer anderen Stelle zu verwenden : INDIRECT(B1).

James
quelle
1

Sie können eine Array-Formel verwenden, um die MAX der Zeilen zu ermitteln

{=INDEX(A1:A5,MAX((A1:A5=4)*(ROW(A1:A5))),1)}

Eingabe mit Steuerung + Umschalt + Eingabe. Der MAX-Teil gibt die größte Zeilennummer aller Zellen zurück, die eine '4' enthalten. Das ist vielleicht alles, was Sie brauchen, aber ich habe das in eine INDEX-Funktion eingeschlossen, die auf die Zelle zeigt, falls Sie diesen zusätzlichen Schritt benötigen.

dkusleika
quelle
1

Unter der Annahme, dass in Ihrem Array keine Übereinstimmung mit Spaltenwerten vorliegt, würde ich vorschlagen, dass Sie die Spaltenwerte einfach umkehren, sodass sich die Werte in Spalte 5 des Arrays jetzt in Spalte 1 befinden, und stattdessen min () verwenden. Das erste Vorkommen zu bekommen ist immer einfacher als das letzte.

Jeff
quelle
0

Es gibt eine Erklärung hier (Suche nach „F94“), aber seien Sie gewarnt, es ist nicht hübsch!

Der archetypische Paulus
quelle