Clever-Excel-Forum

Normale Version: [LAMBDA] 4 Mengen-Funktionen LISTAND, LISTCOMPL, LISTOR, LISTXOR
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
LISTAND, LISTCOMPL, LISTOR, LISTXOR

Beschreibung:
Gibt die zutreffenden Datensätze zu den Mengenbegriffen zweier Tabellen aus.

Syntax:
=LISTAND(a;b) (die anderen drei Funktionen genauso)

Beispiel:
Gegeben seien:
Einträge 1 2 3 8 5 6 7 in A2:A8
Einträge 5 6 7 4 9 1 in B2:B7
Daraus ergeben sich folgende Listen:
=LISTAND(A2:A8;B2:B7) ergibt 1 5 6 7 (Schnittmenge)
=LISTCOMPL(A2:A8;B2:B7) ergibt 2 3 8 (Restmenge A bzw. Komplement zu B)
=LISTCOMPL(B2:B7;A2:A8) ergibt 4 9 (Restmenge B bzw. Komplement zu A)
=LISTOR(A2:A8;B2:B7) ergibt 1 2 3 8 5 6 7 4 9 (Vereinigungsmenge)
=LISTXOR(A2:A8;B2:B7) ergibt 2 3 8 4 9 (Symmetrische Differenz bzw. exkl. Disjunktion)

Code LISTAND (Schnittmenge bzw. logische Konjunktion):
=LAMBDA(a;b;LET(
ArC;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b); k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y); WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
x;ArC(a;b);EINDEUTIG(ArC(EINDEUTIG(x);EINDEUTIG(x;;1));;1)))


Code LISTCOMPL (Restmenge A bzw. Komplement zu B):
LAMBDA(a;b;LET(
ArC;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b); k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y); WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
x;ArC(a;b);EINDEUTIG(ArC(a;EINDEUTIG(ArC(EINDEUTIG(x);EINDEUTIG(x;;1));;1));;1)))


Code LISTOR (Vereinigungsmenge bzw. logische Disjunktion):
=LAMBDA(a;b;LET(
ArC;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b); k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y); WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
EINDEUTIG(ArC(a;b))))


Code LISTXOR (Symmetrische Differenz bzw. exklusive Disjunktion):
=LAMBDA(a;b;LET(
ArC;LAMBDA(a;b;LET(x;ZEILEN(a);y;SPALTEN(a);z;ZEILEN(b); k;SEQUENZ(x);m;SEQUENZ(x+z);n;SEQUENZ(;y); WENN(m<=x;INDEX(a;k;n);INDEX(b;m-x;n))));
EINDEUTIG(ArC(a;b);;1)))


Anmerkungen:
Die 4 Funktionen enthalten ARRAY.COMBINE in der Kurzform ArC und sind daher allein funktionsfähig.

Datei:[attachment=42276]