Letzter Wert ungleich Null in einer Zeile (Microsoft Excel)
Brian hat eine Reihe von Zahlen mit 240 Zellen. In dieser Zeile nehmen die Zahlen stetig ab und werden schließlich irgendwann in diesen 240 Zellen zu 0. Die Nullen füllen weiterhin die verbleibenden Zellen in der Zeile. Brian muss eine Gleichung schreiben, die den letzten Wert ungleich Null in der Zeile zurückgibt.
Es gibt verschiedene Möglichkeiten, wie der gewünschte Wert zurückgegeben werden kann.
(Scheint dies bei Excel nicht immer der Fall zu sein? Sie können viele Möglichkeiten finden, um ein Ergebnis zu erhalten.) Im Allgemeinen können Sie eine reguläre Formel oder eine Array-Formel verwenden.
Wenn Sie eine reguläre Formel verwenden möchten, können Sie Folgendes versuchen:
=OFFSET(A6,0,(COUNT(A6:IF6)-COUNTIF(A6:IF6,0))-1)
Die COUNTIF-Funktion zählt die Anzahl der Nullwerte und die COUNT-Funktion bestimmt die Anzahl der Zellen im Bereich. Das Subtrahieren voneinander und das Anpassen um 1 ergibt den OFFSET-Wert in das „Array“ von Zellen, in denen der letzte Wert ungleich Null liegt. Diese Formel setzt voraus, dass die Werte in Spalte A beginnen. Wenn sie in einer anderen Spalte beginnen, müssen Sie den Wert anpassen, der durch den COUNT / COUNTIF-Teil der Formel bereitgestellt wird, um den Versatz von der ersten Spalte darzustellen.
Hier ist eine kürzere Variante der Formel, die auf einem Versatz von der rechten Seite des Bereichs und nicht von der linken Seite basiert:
=OFFSET(IF6,0,-COUNTIF(A6:IF6,0))
In diesem Fall ist es wichtig, dass IF6 das tatsächliche rechte Ende des Bereichs ist. Die Formel zählt die Anzahl der Nullwerte im Bereich (alle auf der rechten Seite des Bereichs) und berechnet dann die Zellenadresse der letzten Zelle (IF6) abzüglich der Anzahl der Nullen.
Hier ist eine Version, die stattdessen die INDEX-Funktion verwendet:
=INDEX(A6:IF6,,MATCH(0,A6:IF6,0)-1)
Diese Version ist mit der LOOKUP-Funktion noch kürzer:
=LOOKUP(1,1/(6:6>0),6:6)
Array-Formeln können ebenfalls verwendet werden. (Array-Formeln werden durch Drücken von Strg + Umschalt + Eingabetaste eingegeben.) Diese verwendet die INDIRECT-Funktion:
=INDIRECT("R6C" & MAX((A6:IF6>0)*COLUMN(A6:IF6)),FALSE)
Diese Array-Formel verwendet eine interessante Implementierung der LOOKUP-Funktion, um das richtige Ergebnis zu finden:
=LOOKUP(9.99999999999999E+307,IF(A6:IF6<>0,A6:IF6))
Hier ist eine weitere Array-Formel, die verwendet werden kann, diesmal mithilfe der OFFSET-Funktion, um den letzten Wert ungleich Null in Zeile 6 zu ermitteln:
=OFFSET(A6,0,MIN(IF(6:6=0,COLUMN(6:6),300))-2)
Hier ist eine noch kürzere Variante:
=MIN(IF(A6:IF6>0,A6:IF6))
Alle diese bisher vorgestellten Formeln hängen von der Tatsache ab, dass die Zahlen in der Reihe tatsächlich abnehmen – sie gehen von der Anfangszahl aus und gehen stetig gegen Null. Wenn die Zahlen nicht sinken, können Sie eine andere Art von Array-Formel verwenden, um den letzten Wert ungleich Null in der Zeile zu bestimmen:
=INDEX(6:6,MAX(IF(A6:IF6<>0,COLUMN(A6:IF6))))
Die Formel bestimmt zuerst die maximale Spalte in der Zeile (in diesem Fall Zeile 6), deren Wert ungleich Null ist, und verwendet dann die INDEX-Funktion, um den Wert aus dieser Spalte in dieser Zeile abzurufen.
Wie Sie sehen, gibt es einige Möglichkeiten, den letzten Wert ungleich Null in einer Reihe zu finden. Wählen Sie die aus, die Ihnen gefällt. In diesem Fall gibt es kein Richtig oder Falsch.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3785) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: