Zeilennummerierung

Ich kopiere hier eine Frage, die Mathias Milchmeyer in der Mailingliste gestellt hat, damit der Dialog für die Zukunft erhalten bleibt. Er schrieb:

Ich steh gerade völlig auf dem Schlauch, wie man so schön sagt und bekomme einen vermutlich eher einfachen Suchlauf nicht hin.

Ich schreibe regelmäßig Aktennotizen, in denen in einem über mehrere Seiten fließenden Rechenblatt verschiedene Dinge in Spalte B protokolliert sind. Dabei habe ich in den ersten drei Zeilen die Überschriften und in der Spalte A immer die Zeilennummer angezeigt (Formel "Zeile-3" liefert in A4 das richtige Ergebnis "1"). Einen Bezug auf die vorangegangene Zelle nutze ich dabei nicht, da ich die Zeilen häufiger umsortiere. Jetzt habe ich angefangen, Bilder einzufügen und den Text darum herumlaufen zu lassen. Das ist ein wenig kompliziert im Layout, aber das Ergebnis ist sehr informativ und soll daher beibehalten werden.

Die Bilder hatten anfangs eine eigene Spalte C. Das kostet zu viel Platz, daher habe ich jetzt die Spalte B für Text und C für Bilder und überall dort, wo in einer Zeile kein Bild ist, wird eben B und C vereinigt. Wenn jetzt in einer Zelle in B so viel Text steht, dass er länger ist als das Bild daneben, sieht es unschön aus. Ich habe keinen Weg gefunden, innerhalb einer Mehrzeiler-Rechenblatt-Zelle ein Bild zu positionieren und den Text darum herumlaufen zu lassen. Also wird im beschriebenen Fall eben der Text unterbrochen, eine neue Zeile eingefügt und B mit C vereinigt und darin weitergeschrieben. Im Ergebnis wirkt das dann so, als würde in einer Zelle Text stehen und rechts daneben ein Bild und der Fließtext würde am unteren Ende des Bildes darunter über die Gesamtbreite weiterlaufen.
Das ist nützlich, aber meine Zeilennummerierung kommt durcheinander.
Und Computer sollen einem Arbeit abnehmen, also suche ich nach einer Formel, die mir eine automatische Nummerierung erlaubt.

Bislang hatte ich in Spalte A in jeder Zelle untereinander die Formel "Zeile-3" zu stehen.
Jetzt brauche ich eine Formel wie zum Beispiel "Nummer aus dem Feld weiter oben, erhöht um eins; Falls im Feld weiter oben keine Nummer steht, dann Nummer aus zwei Feldern weiter oben, erhöht um eins".
Weiter muss ich nicht suchen, da maximal eine nichtnummerierte Zeile eingefügt wird.
Also z.B. in A8: "Wenn(A7='';A6+1;A7+1)"
Dazu brauche ich relative Bezüge, was auch funktioniert, aber Fehler produziert, wenn ich anfange, die Reihenfolge der Zeilen zu tauschen oder eine Zeile kopiere und zwischen zwei anderen Zeilen einsetze.

Also dachte ich an eine Suchlauffunktion, die jeweils ab $A$4 bis Zeile nach der größten angetroffenen Zahl sucht und diese um eins erhöht.
Ich kann jedoch nicht absolute Referenzen und "Zeile" mischen.
Ich glaube, ich gehe die Aufgabe zu kompliziert an und hätte gerne einen Denkanstoß, wie ich das lösen könnte.

Mathias Milchmeyer

Re: Zeilennummerierung

#11891 On 10 August, 2015 19:58 Thomas Kaegi said,

Hallo Mathias

Ich sehe zwei völlig verschiedene Lösungsansätze:

1. Das ist zwar kein Suchlauf, folgt aber trotzdem deiner Idee:
Setz in Zelle A3 eine "0" und mach sie mit Rechenblattinformation/Zellinhalt/Format/Nullen verbergen" unsichtbar.
In die Zelle darunter (A4) schreibst du die Formel:
Max(A$3:A3)+1
Diese Formel kannst du nach unten kopieren. Wenn du dann den Zellinhalt in Zeile x löschst (dort also keine Formel mehr steht), so werden die Nummern der folgenden Zeilen deinen Erwartungen entsprechen.

2. Ein völlig anderer Ansatz:
Statt dass du den Inhalt der vereinigten Zellen der Spalten B und C als Mehrzeiler definierst, könntest du eine Textkomponente hinein legen – bei ausgewählter (vereinigter) Zelle: Rechenblatt/Inhaltsart/Text. Wenn du im Layout ein Bild dort platzierst, wird der Text darum herumlaufen.

Wahrscheinlich ist aber für deinen Fall der erste Ansatz der bessere, weil du ja oft Zeilen umstellst, wie du sagst. Mit dem zweiten Ansatz müsstest du das Bild separat verschieben.

Freundlicher Gruss, Thomas

Re: Zeilennummerierung

#11899 On 26 September, 2015 11:48 Milchmeyer said,

Hallo Thomas,

danke für Deine wie immer gute Ideen.Leider komme ich erst jetzt dazu, Deinen Tipp auszuprobieren.
Ich bin im Moment eben wirklich gut ausgelastet ;)

Die Formel Max(A$3:A3)+1 tut genau das, was ich gesucht habe.
Auf die Idee mit Max() bin ich einfach nicht gekommen und habe stattdessen versucht, mit Suchlauf und SetzeZelle zu experimentieren.
Mein .rtt ist bereits ergänzt und funktioniert dank Deiner Hilfe besser und zuverlässiger als zuvor.
Ich bin beim Schreiben entlastet und muss nicht mehr nach doppelten oder falschen Nummern suchen.
Das hilft wirklich enorm.

Der zweite Ansatz funktioniert zwar, muss jedoch regelmäßig händisch nachgearbeitet werden, da RagTime nicht erkennt, wie lang der Text ist, der in der Komponente liegt und daher die Zeilenhöhenautomatik nicht funktioniert. Des weiteren kann man nicht per Tastatur navigieren und ist auf die Maus angewiesen. Das ist zwar nicht schlecht, aber wenn man gerade beim Schreiben ist, die Hände auf der Tastatur hat und per (Enter, Pfeil unten, Enter) in die daruntergelegten Textzelle wechseln kann, geht das schneller, als zur Maus zu greifen.
Ich bleibe somit beim ersten Ansatz.

Mit freundlichem Gruß
Mathias Milchmeyer