=GLÄTTEN(TEIL(WECHSELN($A3;":";WIEDERHOLEN(" ";999));SPALTE(A1)*999-998;999))
Diese Version macht die Formel kopierbar:
Spalte beschreibt den Textblock der ausgegeben werden soll und muss in der ersten Spalte mit A1 beginnen.
=Spalte(A1) =1,
Beim kopieren nach rechts wird daraus Spalte(B1)=2 Spalte(C1)=3 .......;4;5 usw.
Entweder du machst in der ersten Spalte aus B1 wieder A1 und kopierst die Formel erneut oder
du ersetzt Spalte(A1) durch 1; Spalte(B1) durch 2 ...3;4;5.
Dann ändert sich da nix mehr
Gruß Holger
GLÄWEXWDH-Quelle
Vorteile/Nachteile der einzelnen Lösungen:
FINDEN²: Klappt schon in Uralt-Excel; Aufteilungsanzahl maximal möglich; Argument muss 3mal ("aufgebläht") genannt werden
GLÄWEXWDH: Klappt schon in Uralt-Excel, trotzdem nur ein Argument; Aufteilungsanzahl ziemlich limitiert (max. "Wurzel aus Länge")
XMLFILTERN: Klappt auch bei extrem unterschiedlich langen Aufteil-Sektionen. Aber: Erst ab xl2013
SPLIT(TEN): Klappt auch bei extrem unterschiedlich langen Aufteil-Sektionen. Für Excel noch nicht veröffentlicht (jedoch schon in GDocs)
XL365/XL2021/XLWeb: können alle vier auch dynamisch darstellen (also nur eine Formel, statt sie zu kopieren)
2)
=TEIL(A$1;
FINDEN("#";WECHSELN(" "&$A1&"#";" ";"#";SPALTE(A1)+0));
FINDEN("#";WECHSELN(" "&$A1&"#";" ";"#";SPALTE(A1)+1))-
FINDEN("#";WECHSELN(" "&$A1&"#";" ";"#";SPALTE(A1)+0)))
Moin LCohen!
Ich habe ja nicht behauptet, dass Deine Formel nicht dynamisierbar ist, sondern wollte lediglich auf das sehr leichte Anpassen in Google Sheets aufmerksam machen.
Ich habe mir mal erlaubt, Deine Formel auf einen Bereich anzupassen.
Hierbei berücksichtige ich auch die Anpassung der "Breite" und "Höhe" des Spilling Range.
T: Trennzeichen
B: zu splittender Bereich
L: Länge des Leerstrings
X: errechnete "Breite" der Spill-Area
Vielleicht hast Du Interesse, die Formel zu prüfen und eventuell zu debuggen:
=LET(T;":";
B;A2:INDEX(A:A;ANZAHL2(A:A));
L;MAX(LÄNGE(WECHSELN(B;T;)));
X;MAX(LÄNGE(B))-L+1;
GLÄTTEN(TEIL(WECHSELN(B;T;WIEDERHOLEN(" ";L));SEQUENZ(;X;;L);L)))
| A | B | C | D | E | F |
1 | Original | | | | | |
2 | aber: Relativitätstheorie: Rhabarber: Kamelle: Xylophon | aber | Relativitätstheorie | Rhabarber | Kamelle | Xylophon |
3 | Biotechnology: Pharmaceutical Prep | Biotechnology | Pharmaceutical Prep | | | |
4 | Diversified Commercial | Diversified Commercial | | | | |
5 | Business Services | Business Services | | | | |
6 | Marine Transportation | Marine Transportation | | | | |
7 | Industrial Specialties | Industrial Specialties | | | | |
8 | Computer Software: Prepackaged Software | Computer Software | Prepackaged Software | | | |
Zelle | Formel |
B2 | =LET(T;":";
B;A2:INDEX(A:A;ANZAHL2(A:A));
L;MAX(LÄNGE(WECHSELN(B;T;)));
X;MAX(LÄNGE(B))-L+1;
GLÄTTEN(TEIL(WECHSELN(B;T;WIEDERHOLEN(" ";L));SEQUENZ(;X;;L);L))) |
Gruß Ralf
Sehr cool, RPP63. Dynamisch nicht nur beim Spill rechts, sondern auch bei der aufzuteilenden Spalte.
Die FINDEN-Variante hat aber nicht die Wurzel-der-Anzahl-Beschränkung. Und die XMLFILTERN-Variante benötigt nur einmal das Argument A2 (wie hier bei GLÄWEXWDH), hat aber auch keine Beschränkung (außer: Stringlänge-der-Zelle oder Anzahl-Spalten-Excel).
Hallo,
ich schließe mich LCohen an:
sehr cool, RPP63. Ich hätte es, als Ableitung einer meiner Lambdas, wie folgt gelöst, was schon komplizierter ist :-)
Code:
=LET(Data;A1:A7;Separator;":";Default;"";
A;Separator&INDEX(Data;0;1);
N;MAX(LÄNGE(A)-LÄNGE(WECHSELN(A;Separator;"")));
P;SEQUENZ(ZEILEN(A);N);
M;INDEX(A;AUFRUNDEN(INDEX(P;0;0)/N;0);1);
T;ZEICHEN(1)&SEQUENZ(1;N)&ZEICHEN(1);
V;WECHSELN(M;Separator;T;SEQUENZ(1;N))&Separator;
X;WENNFEHLER(LÄNGE(INDEX(T;1;SEQUENZ(1;N)))+FINDEN(INDEX(T;1;SEQUENZ(1;N));V);0);
Y;WENN(X>0;WENNFEHLER(FINDEN(Separator;V;X)-1;0);0);
WENN(Y>0;TEIL(V;X;Y-X+1);Default))
Gruß