Excel-Formel: Ermittelt den ersten nicht leeren Wert in einer Liste -

Inhaltsverzeichnis

Generische Formel

(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))

Zusammenfassung

Um den ersten nicht leeren Wert (Text oder Zahl) in einem einspaltigen Bereich abzurufen, können Sie eine Array-Formel verwenden, die auf den Funktionen INDEX, MATCH und ISBLANK basiert. In dem gezeigten Beispiel lautet die Formel in D10:

(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))

Hinweis: Dies ist eine Array-Formel und muss mit Control-Shift-Enter eingegeben werden.

Erläuterung

Der Kern des Problems lautet also: Wir möchten die erste nicht leere Zelle erhalten, aber wir haben keine direkte Möglichkeit, dies in Excel zu tun. Wir könnten VLOOKUP mit einem Platzhalter * verwenden (siehe Link unten), aber das funktioniert nur für Text, nicht für Zahlen.

Wir müssen also die Funktionalität erstellen, die wir benötigen, indem wir Formeln verschachteln. Um dies zu tun, verwenden Sie eine Array-Funktion, die Zellen "testet" und ein Array von TRUE / FALSE-Werten zurückgibt, die wir in die MATCH-Funktion einspeisen können.

Die ISBLANK-Funktion arbeitet von innen nach außen und wertet die Zellen im Bereich B3: B11 aus und gibt ein Array zurück, das folgendermaßen aussieht:

(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)

Jedes FALSE repräsentiert eine Zelle in dem Bereich, der nicht leer ist.

Als Nächstes sucht MATCH im Array nach FALSE und gibt die Position der ersten gefundenen Übereinstimmung zurück, in diesem Fall 2. An diesem Punkt sieht die Formel im Beispiel nun folgendermaßen aus:

(=INDEX(B3:B11,2,0)))

Schließlich übernimmt die INDEX-Funktion und erhält den Wert an Position 2 im Array, der 10 ist.

Erster Längenwert ungleich Null

Um den ersten Längenwert ungleich Null zu erhalten, können Sie die LEN-Funktion wie folgt einschließen:

(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))

Erster numerischer Wert

Um den ersten numerischen Wert in einer Liste zu erhalten, können Sie die Formel anpassen, um die ISNUMBER-Funktion zu verwenden, und dann die Logik so ändern, dass sie mit TRUE anstelle von FALSE übereinstimmt:

(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))

Dies ist auch eine Array-Formel und muss mit Strg + Umschalt + Eingabe eingegeben werden.

Gute Links

Finde das erste nicht leere Element in einer Liste (chandoo)

Interessante Beiträge...