Clever-Excel-Forum

Normale Version: [LAMBDA] COMBINATORICS_LIST: Permutationen, Kombinationen, Variationen in 1 Formel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
COMBINATORICS_LIST benenne im Namensmanager folgende XL365-Formel:

=LAMBDA(n;[k];[c];LET(
z;WENN(c;c;WENN(ISTZAHL(--n)*(LÄNGE(n)=1);1;WENN(k;3;2)));
q;LAMBDA(q;n;ZUSPALTE(WENN(n<2;1;ERSETZEN(q(q;n-1);SEQUENZ(;n);0;n))));
p;LAMBDA(p;n;LET(t;LÄNGE(n);r;RECHTS(n);EINDEUTIG(ZUSPALTE(WENN(t<2;r;ERSETZEN(p(p;LINKS(n;t-1));SEQUENZ(;t);0;r))))));
v;LAMBDA(v;x;k;WENN(k>1;ZUSPALTE(v(v;x;k-1)&MTRANS(x));x));
SORTIEREN(WAHL(z;
q(q;n);
p(p;n);
LET(x;EINDEUTIG(LINKS(p(p;n);k));FILTER(x;NACHZEILE(x;LAMBDA(a;TEXTKETTE(SORTIEREN(TEIL(a;SEQUENZ(;k);1);1;1;1))=a))));
EINDEUTIG(LINKS(p(p;n);k));
v(v;EINDEUTIG(TEIL(n;SEQUENZ(LÄNGE(n));1));k)))))


Anwendungsverzweigung:
=COMBINATORICS_LIST(9) ergibt 362880 Permutationen von 123456789
=COMBINATORICS_LIST("A1B3C01") ergibt 2520 Permutationen von A1B3C01
=COMBINATORICS_LIST("A1B3C01";3) ergibt 25 KOMBINATIONEN() (3 aus 7) von A1B3C01
=COMBINATORICS_LIST("A1B3C01";3;4) ergibt 135 VARIATIONEN() (3 Züge o. Zurückl.) von A1B3C01
=COMBINATORICS_LIST("A1B3C01";3;5) ergibt 216 VARIATIONEN2() (3 Züge m. Zurückl.) von A1B3C01
Hinweis: Die 1 taucht im Bsp. als Wiederholer auf. Die Formel berücksichtigt das.

Zur Formel:
q,p,v sind rekursive Funktionen, die die Listen aufbauen
WAHL bestimmt aus den 5 Berechnungen die per [c] gewählte (4;5) oder die sich ergebende (1;2;3).