Frage von rotespuenktchen, 54

Wie kann ich in Excel Zellen ueberpruefen und ggf. uebernehmen, leere Zellen dabei jedoch ueberspringen?

Hier mein Beispiel zur Frage:

Ich habe eine kleine Tabelle 

        A      B               C                D

 1     x      Hund                           Hund

 2            Katze                           Fisch

 3     x     Fisch

Excel soll nun pruefen, ob:

in A1 ein X, wenn ja dann den Inhalt von B1 in D1 übernehmen

Wenn A2 ein X, dann soll Excel den Inhalt von B2 in D2 übernehmen

.... usw

Ist A jedoch leer, so würde ich gerne in Spalte D dennoch ohne Leerzeile weitermachen. Siehe oben im Beispiel. A2 ist leer also wird A3 geprüft.

Ich hatte bisher lediglich folgende Formel in D1: WENN(A1="x";B1;"")

Antwort
von gfntom, 10

In C1:
=VERGLEICH("x";INDIREKT("A1:A100");0)

In C2:
=VERGLEICH("x";INDIREKT("A"&C1+1&":A100");0)+C1

In D1:
=WENN(ISTZAHL(C1);INDIREKT("B"&C1);"")

Die Formel in C2 nach unten ziehen und die Formel in D1 nach unten ziehen. (Das A100 in den C-Formeln anpassen, falls du mehr als 100 Zeilen hast)

Spalte C bei Bedarf ausblenden.

Alternativ hätte ich das Sortieren nach Spalte A vorgeschlagen.


Expertenantwort
von Suboptimierer, Community-Experte für Excel, 14

Setz einen Autofilter und filtere in Spalte A nach x. Dann kopierst du den gefilterten Block nach D oder arbeitest direkt mit der gefilterten Liste.

Kommentar von Suboptimierer ,

Was auch geht:

=WENNFEHLER(INDEX($B$1:$B$3;KKLEINSTE(($A$1:$A$3="x")*(ZEILE($A$1:$A$3));ZEILE(A2)));"")

Und herunter ziehen

Kommentar von Suboptimierer ,

Die Eingabe muss mit Strg + Alt + Enter abgeschlossen werden.

Wenigstens einen Nichttreffer sollte es geben, weil jeder Nichttreffer 0 liefert und mit dem zweitkleinsten Zeilenindex begonnen wird. 
Eine Überschrift löst das Problem, da sie einen Nichttreffer liefert.

Irgendwo gibt es also noch eine Kleinigkeit zu optimieren in der Formel. Vom Prinzip müsste es aber so ähnlich funktionieren.

Expertenantwort
von DeeDee07, Community-Experte für Excel, 10

Probier mal für D1:

=WENN(ZEILE(A1)>ANZAHL2(A:A);"";INDEX(B:B;KKLEINSTE(WENN(A$1:A$1000<>"";ZEILE($1:$1000));ZEILE(A1))))

und als Matrixformel abschließen mit Strg+Shift+Enter. Diese Formel in Spalte D runterkopieren.

(adaptiert von http://excelformeln.de/formeln.html?welcher=43 )

Solltest du mehr als 1000 Zeilen haben, dann die Formel entsprechend anpassen.

Falls du keine formelbasierte Lösung möchtest, kannst du Spalte A nach x filtern, dann Spalte B kopieren, Filter aufheben und in D einfügen.

Antwort
von gfntom, 39

Was soll denn in Spalte D stehen, wenn A=2 ist?

Vielleicht schreibst du mal eine Tabelle, die so aussieht, wie du es dir wünschst.

Kommentar von rotespuenktchen ,

Ich habe mein Beispiel etwas angepasst, sollte nun verstädlicher sein. 

Kommentar von gfntom ,

Nicht wirklich ;) - zumindest sehe ich die Anpassung (noch) nicht.

So wie ich es verstanden habe:
A1=1 ; B1 = Hund
A2=2 ; B2 = Katze
A3=3 ; B3 = Fisch

In D1 soll also "Hund" stehen. Was hättest du dann gerne in D2?

Kommentar von gfntom ,

Jetzt sehe ich es.
Wenn aber A3 auch leer wäre, sollte Excel weitersuchen, bis es einen A-Zelle mit "x" findet, und den entsprechenden B-Wert in D2 eintragen, richtig?

Kommentar von rotespuenktchen ,

ja genau :-)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten