Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Fortlaufende Zeilennummer in einer Tabelle.





Frage

Hallo, ich habe ein Problem mit einer fortlaufenden Zeilennumerierung. Zur Erläuterung soll hier eine 5-zeilige Tabelle dienen. In der 1. Spalte ist eine laufende Nr. für jede Tabellenzeile vergeben. Zur Ermittlung der lfd. Nummer in den Zellen A1 bis A5 habe ich folgende Formeln hinterlegt: 1. Zeile [b][code]=WENN(B1="";"";1) [/code][/b] (wenn Wert in B1 ungleich blank, dann 1) 2. Zeile [b][code]=WENN(B2="";"";A1+1)[/code][/b] (wenn Wert in B2 ungleich blank, dann Wert aus Zelle A1 + 1) 3. Zeile [b][code]=WENN(B3="";"";A2+1)[/code][/b] (wenn Wert in B3 ungleich blank, dann Wert aus Zelle A2 + 1) 4. Zeile [b][code]=WENN(B4="";"";A3+1)[/code][/b] (wenn Wert in B4 ungleich blank, dann Wert aus Zelle A3 + 1) 5. Zeile [b][code]=WENN(B5="";"";A4+1)[/code][/b] (wenn Wert in B5 ungleich blank, dann Wert aus Zelle A4 + 1) Die fortlaufende Numerierung funktioniert aber nur, so lange, keine Zeile aus der Tabelle gelöscht wird. Sobald eine Zeile gelöscht wird, kann in den danach folgenden Zeilen keine laufende Nummer mehr ermittelt werden, Es wird ein Bezugfehler angezeigt [b][code](###)[/code][/b] . Meine Lösung ist sicherlich nicht optimal, sie entspricht meinen Excel-Kenntnissen. Gibt es evtl. eine Lösung mittels VBA-Macro? Bin für jeden Tip dankbar. Gruss hanswerner[

Antwort 1 von Beverly

Hi Hanswerner,

=WENN(B5="";"";ZEILE())

Bis später,
Karin

Antwort 2 von hanswerner

Hallo Karin,
würdest Du mir bitte Deine Antwort etwas näher erläutern?

Gruss
hanswerner

Antwort 3 von Beverly

Hi Hanswerner,

mit dieser Formel wird die laufend Nummer in Abhängigkeit von der jeweiligen Zeilennummer ermittelt. Damit passt sich die laufende Nummer jeweils an.

Bis später,
Karin

Antwort 4 von Saarbauer

Hallo,

die lösung von @Beverly, ist ok, gibt aber immer die Zeilennummer wieder. Also in der 5 .Zeile eine 5 usw.

Meine Lösung kann auch Leerzeilen enthalten und bei Löschung einer Zeile wird neu nummeriert.

In Zelle A1 steht 1 und in Zelle A2.

=WENN(ISTLEER(B2);"";MAX($A$1:A1)+1)

Dann nach unten ziehen und in jeder beschriebenen Zeile der Spalte B steht die nächste Zahl.

Gruß

Helmut

Antwort 5 von CaroS

Hallo Hanswerner,

Du hast 2 etwa gleich gute (aber verschiedene) Möglichkeiten mit Formeln und eine dritte: VBA.

1. Lückenlose, fortlaufende Nummerierung
Wenn Nachbarzelle B leer ist, wird "unsichtbar" weitergezählt.

A1: =WENN(B1=""; ""; ZEILE())
A2 bis A5 markieren, Strg + U

Löschen einer Zeile aus 1:5 ohne Probleme möglich. Nach Einfügen einer neuen Zeile muss die fehlende Formel "per Hand" übertragen werden. Dazu am besten die leere A-Zelle gemeinsam mit der darüber liegenden markieren, Strg + U.

2. Fortlaufende Nummerierung für Nicht-"Leerzeilen"
Wenn Nachbarzelle B leer ist, wird der Zähler in dieser "Leerzeile" nicht weitergezählt.

A1: =WENN(B1=""; ""; 1)
A2: =WENN(B2=""; ""; MAX(A$1:A1) + 1)
A3 bis A5 markieren, Strg + U

Löschen einer Zeile aus 1:5 ohne Probleme möglich. Nach Einfügen einer neuen Zeile muss die fehlende Formel "per Hand" übertragen werden. Dazu am besten die leere A-Zelle gemeinsam mit der darüber und der darunter liegenden markieren, Strg + U.

Gruß,
CaroS

Antwort 6 von Saarbauer

Hallo,

bei @CaroS Lösung 2 und meiner kommt im ergebnis das gleiche raus. Ich habe nur für die 1.Zeile eine 1 gesetzt, aber die Lösung von @CaroS ist richtig, da bei einer leeren Zelle B1 der richtige Wert automatisch eingetragen wird.

Gruß

Helmut

P.S. @CaroS wir sollten nicht immer die gleichen Themen bearbeiten, würde doppelte Arbeit sparen. :-))))

Antwort 7 von hanswerner

Hallo zusammen,
also ich bin wirklich beeindruckt, mit so vielen Lösungsantworten in so kurzer Zeit hatte ich nicht gerechnet. Dafür "Herzlichen Dank " an alle Ratgeber.

Gruss
hanswerner

Antwort 8 von Saarbauer

Hallo @hanswerner,

herzlichen dank für die Rückmeldung.

es wäre für die Helfer aber interessant ob eine für dich passende Lösung dabei ist, wenn ja, welche?

Gruß

Helmut

Antwort 9 von hanswerner

Hallo Helmut,
Du hast Recht, ich melde mich wieder, wenn ich die für mich passende Lösung gefunden habe.

Gruss
hanswerner

Antwort 10 von CaroS

Hallo Helmut,

ich sollte auch nicht immer so langsam sein und so viel schreiben, das habe ich mir schon öfter gesagt, nur geholfen hat´s nichts.

Aber wenn dann "schlimmstenfalls" doch mal zwei gleiche Lösungen herauskommen anstatt - wie in diesem Fall - etwas Vielfalt, die ich sehr schätze, dann kommt beim Leser vielleicht wenigstens das Gefühl auf, dass an den Vorschlägen ja was dran sein muss.

Manche (vor allem einfache) Dinge sind eben so, wie sie sind. Viel mehr war nicht drin, aber mit weniger muss man sich auch nicht zufrieden geben. Und da wollten wir Beverlys Vorschlag eben beide auf dieselbe Weise ergänzen.

Ich werde Dir wohl auch in Zukunft noch öfter den Vortritt lassen, schöne Grüße,
CaroS

Antwort 11 von hanswerner

Hallo zusammen,

ich hab mich für die Lösung aus Antwort 4 vom Saarbauer (oder Helmut?) entschieden. Das funktioniert so, wie ich es mir vorgestellt habe und ich kann sie mit meinem derzeitigen Wissensstand von Excel auch nachvollziehen.
Nochmals vielen Dank an alle, die mir Ihre Hilfe angeboten haben.

Gut´s Nächt´le
hanswerner

Antwort 12 von Saarbauer

Hallo,

schön, dass du dich für meinen Vorschlag entschieden hast, aber schreibe in A1 anstatt 1 die abgewandelte Formel von CaroS

=WENN(ISTLEER(B1);"";1)

da sonst auch bei einer leeren Zelle B1 dort 1 steht.

Gruß

Helmut