Excel-Formel: FILTER mit mehreren ODER-Kriterien -

Inhaltsverzeichnis

Zusammenfassung

Um Daten mit mehreren ODER-Bedingungen zu extrahieren, können Sie die Funktion FILTER zusammen mit der Funktion MATCH verwenden. Im gezeigten Beispiel lautet die Formel in F9:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

Dabei werden Elemente (B3: B16), Farben (C3: C16) und Städte (D3: D16) als Bereiche bezeichnet.

Diese Formel gibt Daten zurück, bei denen Artikel (T-Shirts ODER Hoodie) UND Farbe (Rot ODER Blau) UND Stadt (Denver ODER Seattle) ist.

Erläuterung

In diesem Beispiel werden Kriterien im Bereich F5: H6 eingegeben. Die Logik der Formel lautet:

Artikel ist (T-Shirt oder Hoodie) und Farbe ist (rot oder blau) und Stadt ist (Denver oder Seattle)

Die Filterlogik dieser Formel (das include-Argument) wird mit den Funktionen ISNUMBER und MATCH zusammen mit der in einer Array-Operation angewendeten booleschen Logik angewendet.

MATCH ist "rückwärts" konfiguriert, wobei Suchwerte aus den Daten stammen und Kriterien für das Sucharray verwendet werden. Die erste Bedingung ist beispielsweise, dass die Artikel entweder ein T-Shirt oder ein Hoodie sein müssen. Um diese Bedingung anzuwenden, wird MATCH wie folgt eingerichtet:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Da die Daten 12 Werte enthalten, ist das Ergebnis ein Array mit 12 Werten wie folgt:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Dieses Array enthält entweder # N / A-Fehler (keine Übereinstimmung) oder Zahlen (Übereinstimmung). Hinweisnummern entsprechen Artikeln, die entweder T-Shirt oder Hoodie sind. Um dieses Array in TRUE- und FALSE-Werte zu konvertieren, wird die MATCH-Funktion in die ISNUMBER-Funktion eingeschlossen:

ISNUMBER(MATCH(items,F5:F6,0))

was ein Array wie folgt ergibt:

(TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE)

In diesem Array entsprechen die TRUE-Werte T-Shirt oder Hoodie.

Die vollständige Formel enthält drei Ausdrücke wie den oben für das include-Argument der FILTER-Funktion verwendeten:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

Nachdem MATCH und ISNUMBER ausgewertet wurden, haben wir drei Arrays, die TRUE- und FALSE-Werte enthalten. Die mathematische Operation des Multiplizierens dieser Arrays erzwingt die Werte TRUE und FALSE auf 1s und 0s, sodass wir die Arrays an diesem Punkt folgendermaßen visualisieren können:

(1;0;0;1;0;1;1;0;1;0;1;1)* (1;0;1;1;0;1;0;0;0;0;0;1)* (1;0;1;0;0;1;0;1;1;0;0;1)

Das Ergebnis ist nach den Regeln der Booleschen Arithmetik ein einzelnes Array:

(1;0;0;0;0;1;0;0;0;0;0;1)

Dies wird zum Include-Argument in der FILTER-Funktion:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

Das Endergebnis sind die drei Datenzeilen in F9: H11

Mit fest codierten Werten

Obwohl die Formel im Beispiel Kriterien verwendet, die direkt im Arbeitsblatt eingegeben wurden, können Kriterien stattdessen wie folgt als Array-Konstanten fest codiert werden:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

Interessante Beiträge...