🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel FILTER-Funktion — Alle passenden Zeilen zurückgeben (und

|

Excel FILTER-Funktion — Alle passenden Zeilen zurückgeben (und

KurzfassungFILTER beantwortet eine andere Frage als SVERWEIS. Ein Nachschlagen liefert einen Treffer; FILTER liefert jede Zeile, die Ihre Bedingung erfüllt, und lässt das Ergebnis als Überlauf (Spill) in einen Bereich laufen, der sich selbst aktualisiert. Syntax: =FILTER(Array; einschließen; [wenn_leer]). Drei Dinge bringen jeden ins Stolpern: Ohne Treffer kommt #CALC!, außer Sie geben das dritte Argument an (=FILTER(data; cond; "Kein Treffer")); für kombinierte Bedingungen multiplizieren Sie Arrays für UND und addieren sie für ODER ((A=x)*(B=y)) — niemals UND()/ODER(); und ein blockierter Überlaufbereich erzeugt #SPILL!. Verfügbar in Excel 365 und 2021+.

=FILTER(Sales, Region = "West")
=FILTER(Sales, (Region = "West") * (Amount > 1000), "Kein Treffer")

Zwanzig Jahre lang hieß „alle Zeilen, in denen Region = West" eine Hilfsspalte, AutoFilter und Kopieren-Einfügen — oder eine fragile Matrixformel. FILTER macht daraus einen Ausdruck, der neu rechnet, sobald sich die Quelldaten ändern. Weil er ein Array statt eines einzelnen Werts zurückgibt, verhält er sich aber anders als ein Nachschlagen — und die Fehlermeldungen sind ebenfalls neu.

Hinweis: In einer deutschen Excel-Oberfläche heißt die Funktion ebenfalls FILTER. Verwandt: UNIQUE = EINDEUTIG, SORT = SORTIEREN, SORTBY = SORTIERENNACH. Die Formeln unten nutzen die englischen Namen — sie zeigen dasselbe Verhalten.

Was Sie lernen

  • Warum FILTER eine Abfrage ist (viele zurückgeben) und ein Nachschlagen ein Finden (einen zurückgeben)
  • Der UND/ODER-Trick: Arrays multiplizieren und addieren — nicht UND()/ODER()
  • Warum ein leeres Ergebnis #CALC! erzeugt und das eine Argument, das es behebt
  • Was #SPILL! wirklich auslöst und wie Sie es beheben
  • Die „Königsformel" =SORT(UNIQUE(FILTER(...))) für saubere, lebende Listen

Das mentale Modell: FILTER ist eine Abfrage, kein Nachschlagen

Wer SQL kennt: FILTER ist die WHERE-Klausel — gib mir jede Zeile, für die das zutrifft. SVERWEIS und XVERWEIS sind das Gegenteil — sie laufen von oben nach unten und stoppen beim ersten Treffer. Genau dieser Unterschied erklärt jede Überraschung von FILTER. Ein Nachschlagen gibt einen Wert in eine Zelle. FILTER gibt einen Block von Zeilen zurück und lässt sie von der Eingabezelle aus nach unten (und rechts) überlaufen. Kein Ziehen, kein Matrix-Abschluss: Sie schreiben es einmal, Excel passt die Größe an die Daten an.

' Ein Treffer, eine Zelle:
=XLOOKUP("West", Region, Sales)        ' die erste West-Zeile

' Jeder Treffer, als Überlauf:
=FILTER(Sales, Region = "West")        ' alle West-Zeilen, so viele es gibt

Stellen Sie sich das zweite Argument, einschließen, als Spalte aus WAHR/FALSCH in Datenhöhe vor. Region = "West" vergleicht nicht eine Zelle — es vergleicht die ganze Region-Spalte auf einmal und erzeugt ein Array aus WAHR/FALSCH. FILTER behält die Zeilen, in denen der Wert WAHR ist.

Die Regel, die alles freischaltet: für UND multiplizieren, für ODER addieren

Das ist das Nützlichste an FILTER, und die meisten Anleitungen verstecken es. Ihr Instinkt schreibt UND(Region="West"; Amount>1000). Das funktioniert nichtUND() schrumpft das ganze Array auf ein einziges WAHR/FALSCH, also liefert FILTER alles oder nichts. Das Argument einschließen muss ein Array bleiben. Also rechnen Sie die Bool'sche Logik selbst:

' UND  — Bedingungen multiplizieren (WAHR*WAHR = 1, alles *FALSCH = 0)
=FILTER(Sales, (Region = "West") * (Amount > 1000), "Kein Treffer")

' ODER — Bedingungen addieren (FALSCH+FALSCH = 0, alles > 0 wird behalten)
=FILTER(Sales, (Region = "West") + (Region = "East"), "Kein Treffer")

Multiplikation ist logisches UND, weil WAHR*WAHR = 1 und alles *FALSCH = 0. Addition ist logisches ODER, weil eine Zeile überlebt, sobald ein Term 1 ist. Klammern Sie jede Bedingung — der Vergleich muss vor dem Rechnen passieren. Sitzt das einmal, sind beliebig komplexe Kriterien nur Arithmetik mit Arrays aus 1 und 0.

Warum FILTER #CALC! erzeugt — und das Argument, das es verhindert

Das ist die Nummer-eins-Meldung „FILTER funktioniert nicht". Wenn keine Zeile passt, ist das Ergebnis ein leeres Array, und Excel kann „nichts" nicht in einer Zelle anzeigen — also kommt der Fehler #CALC!. Kein Fehler in Ihrer Logik; so sieht ein leeres Array aus. Die Lösung ist das optionale dritte Argument, wenn_leer:

=FILTER(Sales, Region = "North")                   ' -> #CALC!  wenn keine North-Zeilen
=FILTER(Sales, Region = "North", "Kein Treffer")    ' -> "Kein Treffer"  (sauber)
=FILTER(Sales, Region = "North", "")                ' -> leer, falls bevorzugt

Machen Sie wenn_leer zur Gewohnheit bei jedem FILTER, der ein Dashboard oder eine andere Formel speist. Ein überraschendes #CALC! pflanzt sich fort — alles, was auf den Überlauf zeigt, erbt den Fehler. Mit wenn_leer wird aus „keine Treffer" ein Wert, den Sie kontrollieren, statt eines roten Fehlers, der den Rest des Blatts zerlegt.

#SPILL! geht um die Nachbarn, nicht um die Formel

FILTER braucht leere Zellen zum Überlaufen. Sitzt irgendetwas — ein verirrter Wert, eine verbundene Zelle, ein altes Label — in dem Bereich, den das Ergebnis belegen will, kann Excel das Array nicht ablegen und gibt #SPILL! zurück. Die Formel ist in Ordnung; das Ziel ist blockiert. Klicken Sie die Zelle an, und Excel markiert den angestrebten Überlaufbereich. Räumen Sie ihn frei, und das Ergebnis erscheint. Zwei Praxisregeln: Setzen Sie ein FILTER nie direkt über bestehende Daten, und füllen Sie keine ganze Spalte (A:A) mit etwas, das in eine Überlaufzone fällt.

Ein Überlaufergebnis mit dem #-Operator referenzieren

Weil die Ausgabegröße mit den Daten wechselt, referenzieren Sie sie nicht mit einem festen Bereich. Sie zeigen mit dem #-Operator auf den Überlauf: Steht Ihr FILTER in E2, dann bedeutet E2# „der ganze überlaufende Bereich, so groß er gerade ist". So speisen Sie ein Diagramm, ein COUNTA oder ein Dropdown, das mitwachsen und -schrumpfen soll:

=COUNTA(E2#)        ' wie viele Zeilen FILTER zurückgab, live
=SUM(F2#)           ' Summe einer überlaufenden Beträge-Spalte

Die Königsformel: SORT, UNIQUE und FILTER zusammen

FILTER ist deshalb so wichtig, weil er sich verschachteln lässt. Packen Sie ihn in UNIQUE und SORT, und Sie erhalten eine einzige, selbstpflegende Formel, die die meisten in drei manuellen Schritten bauen:

=SORT(UNIQUE(FILTER(Customer, Region = "West")))

Von innen gelesen: FILTER holt die West-Kunden, UNIQUE entfernt Duplikate, SORT sortiert alphabetisch — und das Ganze läuft neu, sobald ein Verkauf dazukommt. Das ist die kanonische Quelle für ein dynamisches Dropdown oder eine Dashboard-Liste. Keine Hilfsspalten, kein Aktualisieren-Knopf, kein VBA.

Die Abwägung: Wann FILTER den alten Weg ersetzt

Wenn Sie eine Hilfsspalte anlegen und den AutoFilter einschalten, nur um passende Zeilen herauszukopieren, ist das das Signal für FILTER. Tippen Sie eine {=...}-Matrixformel zum Herausziehen einer Teilmenge, ist dieses Muster auf 365 ein Jahrzehnt veraltet. Die ehrliche Ausnahme: Auf riesigen Blättern rechnet FILTER mit der ganzen Arbeitsmappe neu — für einen einmaligen Auszug aus einer Million Zeilen sind AutoFilter oder Power Query schlanker. Für alles, was live bleiben soll, gewinnt FILTER.

Wie ExcelMaster hilft

Viel FILTER-Arbeit ist eigentlich „bau mir die lebende Ansicht": alle überfälligen offenen Rechnungen, nach Betrag sortiert, auf einem eigenen Blatt. ExcelMaster schreibt diese Formel — samt UND/ODER-Logik und der wenn_leer-Absicherung — aus einer Beschreibung in normaler Sprache, platziert sie, wo Sie wollen, und prüft, dass der Überlaufbereich frei ist. Die Logik behalten Sie; die Array-Mechanik, die FILTER von Hand heikel macht, übernimmt es.

Häufige Fragen

Warum gibt meine FILTER-Formel #CALC! zurück?

Weil keine Zeile passte und ein leeres Array nicht in einer Zelle dargestellt werden kann. Fügen Sie das dritte Argument wenn_leer hinzu: =FILTER(data; Bedingung; "Kein Treffer"). Das ersetzt den Fehler durch einen Wert Ihrer Wahl.

Wie filtere ich nach mehreren Kriterien in Excel?

Halten Sie das Argument einschließen als Array und rechnen Sie Bool'sch: multiplizieren für UND — (A=x)*(B=y) — und addieren für ODER — (A=x)+(B=y). Nutzen Sie nicht UND()/ODER(); sie schrumpfen das Array auf einen Wert.

Was verursacht den #SPILL!-Fehler bei FILTER?

Etwas blockiert die Zellen, in die das Ergebnis überlaufen will — ein Wert, eine verbundene Zelle oder Formatierung im Überlaufbereich. Klicken Sie die Formelzelle an, um den markierten Bereich zu sehen, räumen Sie ihn frei, und das Ergebnis erscheint.

Funktioniert FILTER in Excel 2016 oder 2019?

Nein. FILTER und die anderen dynamischen Array-Funktionen brauchen Excel 365 oder Excel 2021+. Auf 2016/2019 nutzen Sie stattdessen AutoFilter, eine Matrixformel oder Power Query.

Getestet in

Getestet in: Excel 365 (Windows 11) — zuletzt geprüft am 16.06.2026.

Verwandte Anleitungen: Excel UNIQUE · Excel SORT · XLOOKUP in Excel