Clever-Excel-Forum

Normale Version: trennen wenn Doppelpunkt vorhanden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
=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)))



ABCDEF
1Original
2aber: Relativitätstheorie: Rhabarber: Kamelle: XylophonaberRelativitätstheorieRhabarberKamelleXylophon
3Biotechnology: Pharmaceutical PrepBiotechnologyPharmaceutical Prep
4Diversified CommercialDiversified Commercial
5Business ServicesBusiness Services
6Marine TransportationMarine Transportation
7Industrial SpecialtiesIndustrial Specialties
8Computer Software: Prepackaged SoftwareComputer SoftwarePrepackaged Software

ZelleFormel
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ß
Seiten: 1 2 3