Microsoft Excel

Herbers Excel/VBA-Archiv

Liste ohne Leerzeilen erstellen | Herbers Excel-Forum


Betrifft: Liste ohne Leerzeilen erstellen von: Reinhard
Geschrieben am: 08.02.2012 21:39:30

Hallo Wissende,

die Lösung in
http://www.excelformeln.de/formeln.html?welcher=43
zeigt u.U. #ZAHL! an, ich hätte aber gern daß in dem Fall nichts angezeigt wird.

Nachstehend ist das Beispiel von excelformeln.de nachgestellt.
Recherche hier und im Internet ergab bislang noch nichts.
Lösungen mit Schriftfarbe auf weiß zu stellen im Fehlerfall oder eine Lösung mit einer Hilfsspalte kriege ich hin. Aber alle meine Versuche die Matrixformel abzuändern scheiterten bislang :-(

Tabellenblatt: [Mappe1]!Tabelle1
  │     A    │     B    │     C    │     D    │
--┼----------┼----------┼----------┼----------┼
1 │ Cognac   │ Cognac   │ Cognac   │ Cognac   │
--┼----------┼----------┼----------┼----------┼
2 │          │          │ Calvados │ Calvados │
--┼----------┼----------┼----------┼----------┼
3 │          │          │ Rotwein  │ Rotwein  │
--┼----------┼----------┼----------┼----------┼
4 │          │          │ Bier     │ Bier     │
--┼----------┼----------┼----------┼----------┼
5 │ Calvados │ Calvados │  #ZAHL!  │          │
--┼----------┼----------┼----------┼----------┼
6 │          │          │  #ZAHL!  │          │
--┼----------┼----------┼----------┼----------┼
7 │ Rotwein  │ Rotwein  │  #ZAHL!  │          │
--┼----------┼----------┼----------┼----------┼
8 │ Bier     │ Bier     │  #ZAHL!  │          │
--┴----------┴----------┴----------┴----------┴
Benutzte Formeln:
B1: =WENN(A1="";"";A1)
B2: =WENN(A2="";"";A2)
B3: =WENN(A3="";"";A3)
usw. in B

Benutzte Matrixformeln:
C1: {=WENN(ZEILE(A1)>ANZAHL2(B:B);"";INDEX(B:B;KKLEINSTE(WENN(B$1:B$1000<>"";ZEILE($1:$1000)); _
ZEILE(A1))))}
C2: {=WENN(ZEILE(A2)>ANZAHL2(B:B);"";INDEX(B:B;KKLEINSTE(WENN(B$1:B$1000<>"";ZEILE($1:$1000)); _
ZEILE(A2))))}
C3: {=WENN(ZEILE(A3)>ANZAHL2(B:B);"";INDEX(B:B;KKLEINSTE(WENN(B$1:B$1000<>"";ZEILE($1:$1000)); _
ZEILE(A3))))}
usw.in C

D1: {=WENN(ZEILE(A1)>ANZAHL2(A:A);"";INDEX(A:A;KKLEINSTE(WENN(A$1:A$1000<>"";ZEILE($1:$1000)); _
ZEILE(A1))))}
D2: {=WENN(ZEILE(A2)>ANZAHL2(A:A);"";INDEX(A:A;KKLEINSTE(WENN(A$1:A$1000<>"";ZEILE($1:$1000)); _
ZEILE(A2))))}
D3: {=WENN(ZEILE(A3)>ANZAHL2(A:A);"";INDEX(A:A;KKLEINSTE(WENN(A$1:A$1000<>"";ZEILE($1:$1000)); _
ZEILE(A3))))}
usw. in D

(Matrixformeln nicht mit "Enter" sondern mit "Strg+Shift+Enter" eingeben.
Die Spezialklammern nicht manuell eingeben, sie werden von Excel erzeugt.)
A1:D8
haben das Zahlenformat: Standard
Danke ^ Gruß
Reinhard

  

Betrifft: ZÄHLENWENN() anstatt ANZAHL2() von: NoNet
Geschrieben am: 08.02.2012 22:06:12

Hallo Reinhard,

anscheinend interpretiert Excel den Wert "", der durch die WENN()-Funktion in Spalte B resultiert ebenfalls als Zellinhalt (die Zelle selbst ist ja auch nicht LEER, denn es stehen ja genau diese WENN()-Funktionen darin), daher liefert ANZAHL2(B:B) die Anzahl aller NICHTLEEREN Zellen - in Deinem Beispiel also 8.

Mit folgender Funktion könnte das besser klappen :

{=WENN(ZEILE(A1)>ZÄHLENWENN($B:$B;">*");"";INDEX(B:B;KKLEINSTE(WENN(B$1:B$1000<>"";ZEILE($1:$1000)); ZEILE(A1))))}

Gruß, NoNet


  

Betrifft: AW: ZÄHLENWENN() anstatt ANZAHL2() von: Reinhard
Geschrieben am: 08.02.2012 22:29:27

Danke dir NoNet,

funktioniert :-)

Gruß
Reinhard


Beiträge aus den Excel-Beispielen zum Thema "Liste ohne Leerzeilen erstellen"