Excel leere Zellen überspringen?
Hallo, ich habe eine Exceltabelle, die aus einer automatischen Übernahme einer anderer Tabellen erzeugt wird mit einer Bezeichnung (Name) und daneben einer Zahl. Problem ist nun, dass ich eine Funktion suche, die Nullwerte überspringt und nur Bezeichnung und jeweilige Bezeichnung ohne Nullzellen dazwischen anzeigt. Filter sind leider keine Lösung, da dies regelmäßig geändert wird.
Danke!
2 Antworten
Was sind bei Dir "Nullwerte"? Leere Zellen oder wirklich der Wert 0? Und was steht dann bei den Namen?
Angenommen in A1:A100 stehen Namen und in B1:B100 stehen Werte, die ab und zu auch mal 0 sind und wenn das so ist, soll diese Zeile nicht angezeigt werden. Dann erreichst Du das mit:
{=WENNFEHLER(INDEX($A$1:$A$100;KKLEINSTE(WENN($B$1:$B$100<>0;ZEILE($A$1:$A$100));ZEILE(A1)));"")}
und runterkopieren.
** ACHTUNG!**
Das ist eine Matrixformel.
Das bedeutet: Die geschweiften Klammern {} NICHT mit eingeben, sondern die Eingabe der Formel NICHT mit ENTER abschließen, sondern mit:
STRG & SHIFT & ENTER (alle drei gleichzeitig).
DAS erzeugt die { } und macht die Formel zu einer Matrixformel.
Falls es nicht um 0 geht, sondern um Leerzellen, einfach das <>0 durch <>"" ersetzen.
Hilft Dir das? Sonst frage nochmal gezielt nach.
s. Oubyi oder alternativ (ebenfalls Matrixformel):
{=WENNFEHLER(INDEX(_xl!A$1:A$999;KKLEINSTE(WENN(ISTZAHL(_xl!A$1:A$999);ZEILE(_xl!A$1:A$999));ZEILEN(A$1:A999)));"-")}
Bei Nichterfüllen der Bedingung liefert Wenn(Bed;dann|kein sonst!) FALSCH und das wird von Kkleinste ignoriert (genauso in Oubyis Formel). Ich verwende lieber ZeileN mit aufgespanntem Bereich, weil das nie aus dem Blatt rauswandert und dann #Bezug! liefert, egal, wo der Block steht und wie er verschoben wurde (als ganzes) bzw Zeilen oberhalb gelöscht wurden. Ist aber Geschmackssache.
Das Datenblatt mit den externen Werten (aber in derselben Datei) heißt hier kurz _xl
Hallo lamiam.
Ich sehe Deine Antwort gerade erst.
ISTZAHL ist natürlich eine gute Alternative, aber Dein ZEILEN verstehe ich nicht so richtig. Das liefert erstmal 999 als k für KKLEINSTE. Also wäre imho höchstens:
{=WENNFEHLER(INDEX(_xl!A$1:A$999;KKLEINSTE(WENN(ISTZAHL(_xl!A$1:A$999);ZEILE(_xl!A$1:A$999));ZEILEN(A$1:A999)-998));"-")}
sinnvoll, bzw. so wie ich die Aufgabe verstanden habe:
{=WENNFEHLER(INDEX(_xl!A$1:A$999;KKLEINSTE(WENN(ISTZAHL(_xl!B$1:B$999);ZEILE(_xl!A$1:A$999));ZEILEN(A$1:A999)-998));"-")}
Aber das ZEILEN verstehe ich im Prinzip nicht. #Bezug wird doch durch WENNFEHLER abgefangen.
Wenn ich die Matrixformel nur in die oberste Zelle schreibe (dann natürlich mit Zeilen(A$1:A1) [ die zweite Zelle NICHT $ ! ] und runterziehe, wächst der aufgespannte Bereich immer um eine Zeile. Oben steht also das KKleinste für den ersten Eintrag, darunter der für den zweiten usw., also genau das gleiche Bild wie mit Zeile, aber eben unempgfindlich gegen verschieben (was ich sehr häufig mache)
Ja, mit Nullzeile meinte ich den Eintrag 0. Ich versuche die Formel bei Gelegenheit. Danke schon mal!