Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Textfunktionen - BEITRAG: einen langen Text einer Zelle auf vorgegebene Zeichenzahl aufteilen


Aufgabe
In Zelle A1 steht ein langer Text:

Geschrieben steht: "Im Anfang war das Wort!" Hier stock' ich schon! Wer hilft mir weiter fort? Ich kann das Wort so hoch unmöglich schätzen, Ich muß es anders übersetzen, Wenn ich vom Geiste recht erleuchtet bin. Geschrieben steht: im Anfang war der Sinn. Bedenke wohl die erste Zeile, Daß deine Feder sich nicht übereile! Ist es der Sinn, der alles wirkt und schafft? Es sollte stehn: im Anfang war die Kraft! Doch, auch indem ich dieses niederschreibe, Schon warnt mich was, daß ich dabei nicht bleibe. Mir hilft der Geist! Auf einmal seh ich Rath Und schreibe getrost: im Anfang war die That!

Den willst Du jetzt auf Zeilen mit einer Breite von ?? Zeichen aufteilen.
Das funktioniert mit Bearbeiten / bündig anordnen (andere Versionen: "im Blocksatz ausrichten") - siehe Tip Nr. 86 bei Sonstige.

"Bündig ausrichten":
funktioniert nicht automatisch
gibt bei 256 Zeichen den Geist auf
versagt, wenn A1 das Ergebnis einer Formel ist ="text"
versagt, wenn man die Spaltenbreite von A nicht vergrößern darf.

 
 AB
1Hier steht der sehr lange Text 
2Aufteilung auf Zeichenlänge --->80
3  
4Geschrieben steht: "Im Anfang war das Wort!" Hier stock' ich schon! Wer hilft78
5mir weiter fort? Ich kann das Wort so hoch unmöglich schätzen, Ich muß es74
6anders übersetzen, Wenn ich vom Geiste recht erleuchtet bin. Geschrieben steht:80
7im Anfang war der Sinn. Bedenke wohl die erste Zeile, Daß deine Feder sich75
8nicht übereile! Ist es der Sinn, der alles wirkt und schafft? Es sollte stehn:79
9im Anfang war die Kraft! Doch, auch indem ich dieses niederschreibe, Schon75
10warnt mich was, daß ich dabei nicht bleibe. Mir hilft der Geist! Auf einmal seh80
11ich Rath Und schreibe getrost: im Anfang war die That!80
12 80
13 80
14 80
 

Lösung
in B2 wird die maximale Zeichenlänge pro Zeile eingetragen

in A4 steht:
=GLÄTTEN(TEIL(A$1;1+SUMME(B$3:B3);B4))
in B4 steht:
=WENN(LÄNGE(A$1)-SUMME(B$3:B3) < B$2;B$2;FINDEN("#";WECHSELN(TEIL(A$1;SUMME(B$3:B3)+1;B$2);" ";"#";B$2-LÄNGE(WECHSELN(TEIL(A$1;SUMME(B$3:B3)+1;B$2);" ";"")))))
A4 und B4 runterkopieren

Array-Variante für Spalte B:
in A4:
=GLÄTTEN(TEIL($A$1;1+B3;B4-B3))
in B4:
{=MAX((TEIL($A$1&" ";ZEILE(INDIREKT("1:"&$B$2+B3));1)=" ")*ZEILE(INDIREKT("1:"&$B$2+B3)))}

Erläuterung
Logischerweise muß die Zeichenzahl in B2 größer als das längste vorkommende Wort in A1 sein.