Abrufen des letzten Werts in einer Spalte (Microsoft Excel)
Sie fragen sich vielleicht, ob es eine Möglichkeit gibt, den letzten (nicht größten) Wert in einer Spalte zurückzugeben. Wenn beispielsweise Werte in A1 bis A5 vorhanden sind, möchten Sie möglicherweise, dass der Wert in A5 zurückgegeben wird. Wenn später Werte in A6 bis A8 hinzugefügt wurden, sollte der Wert in A8 zurückgegeben werden.
Es gibt verschiedene Möglichkeiten, wie eine Lösung angegangen werden kann. Die erste besteht darin, eine Formel wie die folgende zu verwenden:
=INDEX(A:A,COUNT(A:A))
Diese Formel gibt den letzten numerischen Wert in einer Spalte zurück, vorausgesetzt, die Werte beginnen bei (in diesem Fall) A1. Dieser Ansatz funktioniert nur, wenn alle Werte in der Spalte numerisch sind. Wenn die Werte nicht numerisch sind oder wenn leere Zellen mit den Werten vermischt sind, ist ein anderer Ansatz erforderlich. Eine Möglichkeit besteht darin, die folgende Formel in Spalte B rechts neben den Zellen zu kopieren, die Werte enthalten können:
=IF(ISNUMBER(A2),IF(A2<>0,ROW(A2),""),"")
In diesem Fall gibt die Formel die Zeilennummer einer Zelle in A zurück, die einen numerischen Wert größer als Null enthält. Die folgende Formel kann dann verwendet werden, um den letzten Wert in Spalte A abzurufen:
=INDEX(A:A,MAX(B:B))
Diese Formel funktioniert, weil sie die größte Zeilennummer aus Spalte B zurückgibt und diese dann als Index verwendet, um den entsprechenden Wert aus Spalte A zurückzugeben.
Wenn Sie keine Hilfsspalte verwenden möchten (wie hier in Spalte B beschrieben), können Sie die folgende Formel verwenden, wenn in Spalte A eine Mischung aus numerischen und nicht numerischen Werten vorhanden ist:
=LOOKUP(2,1/(1-ISBLANK(A:A)),A:A)
Diese Formel muss möglicherweise etwas erklärt werden. Der ISBLANK-Teil (A: A) gibt ein Array zurück, das einen FALSE-Wert an jedem Punkt auflistet, der einer Zelle in Spalte A entspricht, die einen Wert enthält, und einen TRUE-Wert an jedem Punkt, der einer Zelle in Spalte A entspricht, die leer ist. Diese TRUE / FALSE-Werte werden dann von 1 subtrahiert, sodass sie sich auf 0/1 Werte anstelle von TRUE / FALSE-Werten ändern.
Dieses Array wird dann „invertiert“, indem 1 durch die 0/1-Werte geteilt wird. Dies führt zu einem Array, das überall dort eine 1 enthält, wo es einen Wert in Spalte A und ein # DIV / 0 gibt! Fehler überall dort, wo Spalte A eine leere Zelle hat. Schließlich sucht die LOOKUP-Funktion nach dem Wert 2 im Array. Es wird es nicht finden (es gibt nur Einsen und Fehler im Array), daher wird die letzte „1“ in der Liste zurückgegeben und der letzte nicht leere Wert aus der Spalte abgerufen.
Wie Sie sehen, kann es manchmal etwas schwierig sein, den letzten Wert in einer Spalte zurückzugeben. Ein sauberer Ansatz besteht darin, einfach eine eigene VBA-Funktion zu entwickeln, die den gewünschten Wert zurückgibt. In diesem Fall können Sie die Funktion so programmieren, dass sie einen beliebigen Wert zurückgibt – nicht nur numerische Werte.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9008) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: