Excel FILTER Funktion

Überblick

Mit der Excel FILTER Funktion kannst du eine Liste oder Tabelle filtern und dir die resultierenden Einträge ausgeben lassen. Das besondere an der FILTER Funktion ist, dass du ähnlich wie beim Spezialfilter eine Reihe von Suchkriterien bzw. Filterbedingungen anwenden kannst, die über das normale Filtern hinausgehen. Im Gegensatz zum Spezialfilter handelt es sich hier um eine dynamische Funktion, dessen Ergebnis sich automatisch anpasst so bald neue Daten in die Liste bzw. Tabelle hinzukommen. Wenn die Funktion auf eine Liste zugreift, muss der Zellbereich der Funktion entsprechend angepasst werden.

Die FILTER Funktion steht aktuell nur Office 365 und Excel 2021 Nutzern zur Verfügung. Um vergleichbare Funktionen bei älteren Excelversionen zur Verfügung zu haben, kann folgende Lösung verwendet werden. 

Verwendungszweck / Rückgabewert

Einträge in einer Liste oder Tabelle auf Grundlage von komplexen Filterkombinationen ausgeben lassen.

Syntax

=FILTER(Matrix; einschließen; [wenn_leer]) oder eine einzelne Zeile / Spalte handeln.

Argumente

Matrix - Der Bereich aus dem später die Ergebniszeilen kommen. Dabei kann es sich um einen Zellbereich oder eine einzelne Zeile / Spalte handeln.
einschließen - Setzt sich zusammen aus der Spalte bzw. Spalten auf, die eine oder mehrere Filterbedingungen angewendet werden. Hierbei handelt es sich um Wahrheitswerte (WAHR / FALSCH). Für jede einzelne Zeile wird die Filterbedingung angewendet und wenn der gesamte Ausdruck 0 ist wird die Zeile nicht ausgegeben. Wenn der Ausdruck ungleich 0 ist, also 1, 2, 3 ... dann wird die Zeile ausgegeben.
[wenn_leer] - [Optional] Wenn es keine Zeile gibt, auf die die Filterbedingung zutrifft wird der Fehler #KALK! produziert. Um dies abzufangen, kann man ähnlich wie bei WENNFEHLER, den Fehler abfangen und z.B. durch einen Text "Keine Treffer" oder einen Nullstring "" ersetzen. 

Beispiele für FILTER

Zu beachten

  • Die FILTER Funktionen versteht Vergleichsoperatoren wie <, >, <>, <=, >=
  • Bei Matrix kann es sich sowohl um einen Zellbereich, als auch eine einzelne Spalte oder Zeile handeln
  • Um eine Zeile auf mehrere Bedingungen zu prüfen, werden diese mit * multipliziert. In unserem Beispiel bedeutet (A7:A14=2020)*(B7:B14="A") Wert gleich 2020 UND Produkt = A.
    Beide Ausdrücke müssen WAHR bzw. 1 sein.
    WAHR * WAHR = 1*1 = 1 = WAHR.
    Sobald ein Ausdruck FALSCH bzw. 0 ist wird das Ergebnis FALSCH bzw. 0.  
    WAHR * FALSCH = 1*0 = 0
  • Um eine Zeile auf mehrere "Bedingungspaare" zu prüfen, werden diese mit + addiert. In unserem Beispiel bedeutet (A7:A14=2021)+(B7:B14="C") Wert= 2021 ODER Produkt = C.
    Nur einer der Ausdrücke muss WAHR bzw. 1 sein. Es können jedoch auch beide WAHR sein.
    FALSCH + FALSCH = 0+0 = 0
    WAHR + FALSCH = 1+0 = 1
    WAHR + WAHR = 1+1 = 2 (Diese Zeilen werden auch im als Ergebnis mit ausgegeben!)
  • Die Matrix und Arrays in einschließen müssen die gleiche Höhe bzw. Breite haben ansonsten wird ein #WERT! Fehler produziert.
  • Wenn es keine Ergebnisse gibt, wird der #KALK! Fehler produziert.
  • Wenn man nach Text filtert und die Anführungszeichen vergisst, wird der #NAME? Fehler produziert.
  • Wenn die Funktion eingeben wird und im Ausgabezellbereich etwas im Wege steht, wird der #ÜBERLAUF! Fehler produziert.
  • Wildcards oder Platzhalter können nicht direkt in der FILTER-Funktion verwendet werden.

Filtern nach einem Teilbestandteil der Zelle

Da Wildcards/Platzhalter nicht im Argument einschließen verwendet werden können, lässt sich die Filterbedingung "Zelle enthält" nur über einen Umweg realisieren. Hierzu benötigen wird zusätzlich noch die SUCHEN-Funktion, welche auch Platzhalter unterstützt und die ISTZAHL-Funktion. 

=FILTER(Matrix;ISTZAHL(SUCHEN(Suchtext;Text));"kein Treffer")

Mit der SUCHEN-Funktion können wir die Positions eines Suchtextes bzw. eines oder von mehreren Zeichen in einer Zelle ermitteln. Entweder erhalten wir die Position als Zahl oder, falls der Suchtext nicht vorkommt, den #WERT! Fehler. Um diesen Fehler abzufangen, wandeln wir das Ergebnis noch mit der ISTZAHL-Funktion in einen WAHR und FALSCH Wert um. Diese WAHR und FALSCH Werte können wir nun im einschließen Argument der FILTER-Funktion verbauen. 

Zur Wiederholung ? steht für ein und * für ein oder mehrere Zeichen.