=FILTER(A2:C7;B2:B7="North") liefert jede Zeile aus A2:C7, deren Region in Spalte B North ist. Du tippst die Formel in eine Zelle, und die passenden Zeilen laufen in die Zellen darunter und rechts daneben über. Ändere eine Region in Spalte B in North, oder ein North in South, und die Liste aktualisiert sich. FILTER heißt in deutschem Excel genauso; die Tabelle zeigt die Formel mit Kommas, =FILTER(A2:C7,B2:B7="North"). Du kannst die Formeln in der Tabelle auch deutsch eingeben, mit Semikolons.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTER(A2:C7;B2:B7="North")Nur E2 enthält eine Formel. Die anderen gefüllten Zellen in E:G sind ihr übergelaufenes Ergebnis: Klick auf F3, und du siehst, dass sie zur Formel in E2 gehört. Steht in diesem Bereich schon etwas, zeigt FILTER statt der Zeilen #ÜBERLAUF! (englisch #SPILL!; siehe #ÜBERLAUF!-Fehler). Die Tabelle zeigt die englischen Fehlernamen.
Syntax von FILTER
=FILTER(array, include, [if_empty])
arrayist das, was zurückkommen soll: eine Spalte, mehrere Spalten oder die ganze Tabelle.includeist eine Bedingung mit einem WAHR oder FALSCH pro Zeile vonarray, etwaB2:B7="North". Sie muss genau so viele Zeilen haben wiearray. (Um stattdessen Spalten zu filtern, gibst du ihr einen Wert pro Spalte.)if_emptyist das, was angezeigt wird, wenn keine Zeile passt. Ohne dieses Argument ist ein leeres Ergebnis der Fehler #KALK! (englisch #CALC!).
FILTER braucht Excel 2021, Excel 2024 oder Microsoft 365. In Excel 2019 und älter zeigt es #NAME?, und dort filterst du mit der Schaltfläche Filtern auf der Registerkarte Daten. Google Sheets hat FILTER ebenfalls, und dort kann jede Bedingung auch als eigenes Argument angegeben werden.
Textvergleiche unterscheiden keine Groß- und Kleinschreibung: B2:B7="north" passt auf North. FILTER behält die Zeilen in ihrer ursprünglichen Reihenfolge; das Ergebnis zu sortieren ist ein eigener Schritt, der weiter unten gezeigt wird.
Nach einem Zellwert filtern
Steht "North" fest in der Formel, musst du die Formel jedes Mal bearbeiten. Setz den Wert in eine Zelle und vergleiche stattdessen mit der Zelle. Wähle in F1 eine andere Region, und das Ergebnis zieht mit:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | ||
| 2 | Ann | North | 120 | ||||
| 3 | Ben | South | 80 | Ann | North | 120 | |
| 4 | Cara | North | 200 | Cara | North | 200 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTER(A2:C7;B2:B7=F1;"No sales")West hat keine Zeilen, also zeigt die Auswahl den Text aus if_empty, No sales.
Zahlen funktionieren genauso. C2:C7>=F1 mit 100 in F1 behält jede Zeile mit einem Umsatz von mindestens 100, und C2:C7>F1 macht daraus "echt größer als".
FILTER mit mehreren Kriterien (UND)
Um eine Zeile nur zu behalten, wenn zwei Bedingungen beide zutreffen, multiplizierst du sie. Das liefert die North-Zeilen mit einem Umsatz über 100:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTER(A2:C7;(B2:B7="North")*(C2:C7>100))Ann (120) und Cara (200) kommen durch. Finn ist North, aber seine 60 liegen nicht über 100, also bleibt er draußen.
Warum multiplizieren: Jede Bedingung ist eine Spalte aus WAHR und FALSCH, und beim Rechnen zählt WAHR als 1 und FALSCH als 0. Eine Zeile bekommt nur dann 1, wenn jeder Faktor 1 ist, also wirkt * wie UND. Jede Bedingung braucht ihre eigenen Klammern, und du kannst beliebig viele aneinanderhängen: (B2:B7="North")*(C2:C7>100)*(C2:C7<500).
UND() funktioniert hier nicht. UND(B2:B7="North";C2:C7>100) macht aus dem ganzen Bereich ein einziges WAHR oder FALSCH statt eines pro Zeile, also bekommt FILTER die falsche Form.
FILTER mit ODER
Addiere die Bedingungen, um eine Zeile zu behalten, wenn mindestens eine davon zutrifft. Das liefert die Zeilen North und East:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Dan | East | 150 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTER(A2:C7;(B2:B7="North")+(B2:B7="East"))Eine Zeile, die beide Bedingungen erfüllt, ergibt 2, und FILTER behält jede Zeile, deren Ergebnis nicht 0 ist, also wirkt die Summe wie ODER. Du kannst beides mischen: ((B2:B7="North")+(B2:B7="East"))*(C2:C7>100) bedeutet (North oder East) und über 100. Hier liefert das Ann, Cara und Dan.
FILTER liefert #KALK!, wenn nichts passt
Kommt keine Zeile durch, hat FILTER nichts zurückzugeben. Ohne drittes Argument ist das der Fehler #KALK!; mit einem bekommst du deinen eigenen Text:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | No if_empty | With if_empty | |
| 2 | Ann | North | 120 | #CALC! | No match | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
#CALC! Die Berechnung hat kein Ergebnis, zum Beispiel ein FILTER, der nichts findet.Im deutschen Excel: =FILTER(A2:A7;B2:B7="West")E2 zeigt #CALC! (in deutschem Excel #KALK!) und F2 zeigt No match. Ändere B3 von South in West, und beide Formeln liefern Ben. Um gar nichts anzuzeigen, nimmst du eine leere Zeichenfolge: =FILTER(A2:A7;B2:B7="West";"").
Diese Tabelle zeigt auch, wie du eine einzelne Spalte filterst: array ist A2:A7, also kommen nur Namen zurück. Um einige Spalten einer Tabelle zu bekommen, aber nicht alle, packst du das Ergebnis in SPALTENWAHL (englisch CHOOSECOLS): =SPALTENWAHL(FILTER(A2:C7;B2:B7="North");1;3) liefert Namen und Umsätze ohne die Region. SPALTENWAHL braucht Microsoft 365 oder Excel 2024.
Das Ergebnis von FILTER sortieren
FILTER liefert die Zeilen in der Reihenfolge, in der sie in der Tabelle stehen. Pack es in SORTIEREN (englisch SORT), um das Ergebnis zu ordnen: hier die North-Zeilen nach Umsatz, der größte zuerst. Die 3 ist die Spalte des Ergebnisses, nach der sortiert wird, und -1 bedeutet absteigend.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Cara | North | 200 | |
| 3 | Ben | South | 80 | Ann | North | 120 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=SORTIEREN(FILTER(A2:C7;B2:B7="North");3;-1)Cara (200) kommt zuerst, dann Ann (120) und Finn (60). Um nur die obersten Zeilen zu liefern, packst du es noch einmal in ÜBERNEHMEN (englisch TAKE): =ÜBERNEHMEN(SORTIEREN(FILTER(A2:C7;B2:B7="North");3;-1);2) behält die ersten beiden (ÜBERNEHMEN braucht Microsoft 365 oder Excel 2024). SORTIEREN und SORTIERENNACH behandelt die übrigen Sortieroptionen.
Zeilen filtern, die Text enthalten
FILTER hat keine Platzhalter, also sucht B2:B7="*th*" nach dem Text *th* selbst. Um Zeilen zu behalten, deren Name einen Text enthält, prüfst du jede Zelle mit SUCHEN, das eine Position liefert, wenn der Text gefunden wird, und sonst einen Fehler, und packst das in ISTZAHL:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Dan | East | 150 | |
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
=FILTER(A2:C7;ISTZAHL(SUCHEN("an";A2:A7)))Das liefert Ann und Dan: SUCHEN ignoriert die Schreibweise, also passt "an" auch auf das An von Ann. In deutschem Excel lautet die Formel =FILTER(A2:C7;ISTZAHL(SUCHEN("an";A2:A7))). Nimm FINDEN statt SUCHEN für einen Treffer mit Groß- und Kleinschreibung.
Übung: FILTER mit zwei Bedingungen
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | ||||
| 3 | Ben | South | 80 | ||||
| 4 | Cara | North | 200 | ||||
| 5 | Dan | East | 150 | ||||
| 6 | Eve | South | 95 | ||||
| 7 | Finn | North | 60 |
Du bist dran: Gib in E2 die Zeilen (alle drei Spalten) der Vertreter aus der Region South mit einem Umsatz über 85 zurück.
Übung: FILTER nach einer Zelle, mit Ersatzwert
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | |||
| 3 | Ben | South | 80 | Names | ||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
Du bist dran: Liste in F3 die Namen (nur Spalte A) der Vertreter aus der Region, die in F1 steht. Gibt es keine, zeig None.
Häufige Fehler mit FILTER
- Bereiche unterschiedlicher Höhe.
=FILTER(A2:C7;B2:B6="North")prüft 5 Zeilen für eine Tabelle mit 6 Zeilen, und Excel liefert #WERT! (englisch #VALUE!). Lassincludein denselben Zeilen beginnen und enden wiearray. - Nullen, wo die Quelle leer ist. FILTER liefert 0 für eine leere Zelle in
array. Ersetze die leeren Zellen vor dem Filtern durch leeren Text:=FILTER(WENN(A2:C7="";"";A2:C7);B2:B7="North"). - Ganze Spalten.
=FILTER(A:C;B:B="North")funktioniert, aber steht die Formel selbst in den Spalten A bis C, verweist sie auf sich selbst. Setz das Ergebnis neben die Tabelle, oder nimm einen festen Bereich wie A2:C1000. - Anführungszeichen um Zahlen.
C2:C7>"100"vergleicht Zahlen mit Text und behält nichts. SchreibC2:C7>100. - Die Schaltfläche Filtern erwarten. FILTER kopiert passende Zeilen an eine neue Stelle und lässt die Tabelle in Ruhe. Um Zeilen in der Tabelle selbst auszublenden, nimmst du Daten > Filtern.
Häufig gestellte Fragen
Wie verwende ich die FILTER-Funktion in Excel?
Gib ihr die Zeilen, die zurückkommen sollen, und eine Bedingung für jede Zeile: =FILTER(A2:C7;B2:B7="North") liefert jede Zeile aus A2:C7, in der Spalte B North ist. Tippe die Formel in eine Zelle; die passenden Zeilen laufen in die Zellen darunter und rechts daneben über.
Wie filtere ich in Excel mit mehreren Kriterien?
Multipliziere die Bedingungen für UND und addiere sie für ODER: =FILTER(A2:C7;(B2:B7="North")*(C2:C7>100)) behält Zeilen, die beide erfüllen, =FILTER(A2:C7;(B2:B7="North")+(B2:B7="East")) behält Zeilen, die eine davon erfüllen. Jede Bedingung braucht ihre eigenen Klammern.
Warum liefert FILTER #KALK!?
Weil keine Zeile gepasst hat und du kein drittes Argument angegeben hast. Gib eines an, um etwas anderes zu zeigen: =FILTER(A2:C7;B2:B7="West";"No match") zeigt No match statt des Fehlers.
Welche Excel-Versionen haben die FILTER-Funktion?
Excel 2021, Excel 2024 und Microsoft 365, dazu Excel für das Web. Excel 2019 und älter haben sie nicht und zeigen #NAME?; dort brauchst du die Schaltfläche Filtern auf der Registerkarte Daten oder eine Matrixformel mit INDEX und KKLEINSTE.
Wie liefere ich mit FILTER nur einige Spalten?
Filtere nur die Spalten, die du brauchst, oder pack das Ergebnis in SPALTENWAHL (Microsoft 365 oder Excel 2024): =SPALTENWAHL(FILTER(A2:C7;B2:B7="North");1;3) liefert die erste und die dritte Spalte der passenden Zeilen.