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


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).


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.


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.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.