Obwohl FILTER häufiger zum Filtern von Zeilen verwendet wird, können Sie auch Spalten filtern; der Trick ist, ein Array mit der gleichen Anzahl von Spalten wie die Quelldaten zu liefern. In diesem Beispiel konstruieren wir das benötigte Array mit Boolescher Logik, auch Boolesche Algebra genannt.

In der Booleschen Algebra entspricht die Multiplikation der UND-Logik und die Addition der ODER-Logik. Im gezeigten Beispiel verwenden wir Boolesche Algebra mit ODER-Logik (Addition), um nur die Spalten A, C und E wie folgt anzusprechen:

(B4:G4="a")+(B4:G4="c")+(B4:G4="e")

Nach der Auswertung jedes Ausdrucks haben wir drei Arrays mit TRUE/FALSE-Werten:

{TRUE,FALSE,FALSE,FALSE,FALSE,FALSE}+{FALSE,FALSE,TRUE,FALSE,FALSE,FALSE}+{FALSE,FALSE,FALSE,FALSE,TRUE,FALSE}

Die mathematische Operation (Addition) wandelt die TRUE- und FALSE-Werte in 1en und 0en um, Sie können sich die Operation also so vorstellen:

{1,0,0,0,0,0}+{0,0,1,0,0,0}+{0,0,0,0,1,0}

Am Ende haben wir ein einzelnes horizontales Array aus 1en und 0en:

{1,0,1,0,1,0}

Dieses wird direkt an die FILTER-Funktion als Include-Argument übergeben:

=FILTER(B5:G12,{1,0,1,0,1,0})

Beachten Sie, dass es 6 Spalten in den Quelldaten und 6 Werte in dem Array gibt, die alle entweder 1 oder 0 sind. FILTER verwendet dieses Array als Filter, um nur die Spalten 1, 3 und 5 aus den Quelldaten aufzunehmen. Die Spalten 2, 4 und 6 werden entfernt. Mit anderen Worten, die einzigen Spalten, die überleben, sind mit 1en verbunden.

Mit der MATCH-Funktion

Die Anwendung der ODER-Logik mit Addition, wie oben gezeigt, funktioniert gut, ist aber nicht gut skalierbar und macht es unmöglich, einen Bereich von Werten aus einem Arbeitsblatt als Kriterium zu verwenden. Als Alternative können Sie die MATCH-Funktion zusammen mit der ISNUMBER-Funktion wie folgt verwenden, um das Include-Argument effizienter zu konstruieren:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,{"a","c","e"},0)))

Die MATCH-Funktion ist so konfiguriert, dass sie nach allen Spaltenüberschriften in der Array-Konstante {„a“, „c“, „e“} sucht, wie gezeigt. Wir machen das auf diese Weise, damit das Ergebnis von MATCH Dimensionen hat, die mit den Quelldaten kompatibel sind, die 6 Spalten enthalten. Beachten Sie auch, dass das dritte Argument in MATCH auf Null gesetzt ist, um eine exakte Übereinstimmung zu erzwingen.

Nachdem MATCH gelaufen ist, gibt es ein Array wie dieses zurück:

{1,#N/A,2,#N/A,3,#N/A}

Dieses Array geht direkt in ISNUMBER, das ein weiteres Array zurückgibt:

{TRUE,FALSE,TRUE,FALSE,TRUE,FALSE}

Wie oben ist dieses Array horizontal und enthält 6 Werte, die durch Kommas getrennt sind. FILTER verwendet das Array, um die Spalten 2, 4 und 6 zu entfernen.

Mit einem Bereich

Da die Spaltenüberschriften bereits auf dem Arbeitsblatt im Bereich I4:K4 liegen, kann die obige Formel leicht angepasst werden, um den Bereich direkt wie folgt zu verwenden:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))

Der Bereich I4:K4 wird als {„a“, „c“, „e“} ausgewertet und verhält sich genauso wie die Array-Konstante in der obigen Formel.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.