20.12.2020, 13:40
Moin,
zwei neue Funktion von mir: ARRAY.SPLIT und ARRAY.SPLIT.BYPOS.
Gruß
zwei neue Funktion von mir: ARRAY.SPLIT und ARRAY.SPLIT.BYPOS.
Code:
ARRAY.SPLIT=LAMBDA(Array;Separator;Default;
LET(D;WENN(ISTLEER(Default);"";INDEX(Default;1;1));
S;WENN(ISTLEER(Separator);" ";INDEX(Separator;1;1));
A;S&INDEX(Array;0;1);
C;MAX(LÄNGE(A)-LÄNGE(WECHSELN(A;S;"")));
P;SEQUENZ(ZEILEN(A);C);
M;INDEX(A;AUFRUNDEN(INDEX(P;0;0)/C;0);1);
T;ZEICHEN(1)&SEQUENZ(1;C)&ZEICHEN(1);
V;WECHSELN(M;S;T;SEQUENZ(1;C))&S;
X;WENNFEHLER(LÄNGE(INDEX(T;1;SEQUENZ(1;C)))+
FINDEN(INDEX(T;1;SEQUENZ(1;C));V);0);
Y;WENN(X>0;WENNFEHLER(FINDEN(S;V;X)-1;0);0);
WENN(Y>0;TEIL(V;X;Y-X+1);D)))
Code:
ARRAY.SPLIT.BYPOS=LAMBDA(Array;Positions;Default;
LET(D;WENN(ISTLEER(Default);"";INDEX(Default;1;1));
S;WENN(SPALTEN(Positions)>1;MTRANS(INDEX(Positions;1;0));Positions);
F;SORTIEREN(EINDEUTIG(FILTER(S;ISTZAHL(S)*(S>1))));
A;INDEX(Array;0;1);
L;MAX(LÄNGE(A))+1;
C;ZEILEN(F)+1;
P;SEQUENZ(ZEILEN(A);C);
M;INDEX(A;AUFRUNDEN(INDEX(P;0;0)/C;0);1);
X;SEQUENZ(1;C;0);
Y;SEQUENZ(1;C;1);
U;WENN(X>0;INDEX(F;X;0);1);
V;WENN(Y>C-1;L;INDEX(F;Y;0));
WENN(LÄNGE(M)>U;TEIL(M;U;V-U);D)))
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner