Excel-Formel: FILTER zum Entfernen von Spalten -

Inhaltsverzeichnis

Generische Formel

=FILTER(data,(header="a")+(header="b"))

Zusammenfassung

Geben Sie zum Filtern von Spalten ein horizontales Array für das Argument include an. In dem gezeigten Beispiel lautet die Formel in I5:

=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))

Das Ergebnis ist ein gefilterter Datensatz, der nur die Spalten A, C und E aus den Quelldaten enthält.

Erläuterung

Obwohl FILTER häufiger zum Filtern von Zeilen verwendet wird, können Sie auch Spalten filtern. Der Trick besteht darin, ein Array mit der gleichen Anzahl von Spalten wie die Quelldaten bereitzustellen. In diesem Beispiel konstruieren wir das Array, das wir benötigen, mit boolescher Logik, auch Boolesche Algebra genannt.

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

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

Nachdem jeder Ausdruck ausgewertet wurde, 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) konvertiert die Werte TRUE und FALSE in 1s und 0s, sodass Sie sich die Operation folgendermaßen vorstellen können:

(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 von Einsen und Nullen:

(1,0,1,0,1,0)

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

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

Beachten Sie, dass die Quelldaten 6 Spalten und das Array 6 Werte enthalten, entweder 1 oder 0. FILTER verwendet dieses Array als Filter, um nur die Spalten 1, 3 und 5 aus den Quelldaten einzuschließen. Die Spalten 2, 4 und 6 werden entfernt. Mit anderen Worten, die einzigen Spalten, die überleben, sind mit 1s verknüpft.

Mit der MATCH-Funktion

Das Anwenden der ODER-Logik mit Addition wie oben gezeigt funktioniert einwandfrei, lässt sich jedoch nicht gut skalieren und macht es unmöglich, einen Wertebereich aus einem Arbeitsblatt als Kriterien zu verwenden. Alternativ 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 wie gezeigt nach allen Spaltenüberschriften in der Array-Konstante ("a", "c", "e") sucht. Wir machen das so, dass 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 genaue Übereinstimmung zu erzwingen.

Nachdem MATCH ausgeführt wurde, wird ein Array wie folgt zurückgegeben:

(1,#N/A,2,#N/A,3,#N/A)

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

(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)

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

Mit einer Reichweite

Da sich die Spaltenüberschriften bereits im Bereich I4: K4 auf dem Arbeitsblatt befinden, 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 genau wie die Array-Konstante in der obigen Formel.

Interessante Beiträge...