Registriert seit: 14.04.2017
Version(en): 2016/19
14.11.2021, 10:02
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2021, 10:07 von echo.)
=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
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
14.11.2021, 10:29
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2021, 10:37 von LCohen.)
GLÄWEXWDH-QuelleVorteile/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)))
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
14.11.2021, 13:37
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2021, 13:45 von RPP63.)
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
14.11.2021, 14:11
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2021, 14:12 von LCohen.)
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).
Registriert seit: 08.05.2014
Version(en): Office 2010, Office 365, Office 365 Betakanal
14.11.2021, 17:45
(Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2021, 17:53 von maninweb.)
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ß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awardshttps://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner