Google Sheets-Kochbuch: FILTER


Die FILTER-Funktion erstellt einen Auszug aus einem Bereich.

Die Beispieltabelle für diese Seite finden Sie unter Beispieltabellen - Buchhaltung

Die FILTER-Funktion erwartet zunächst einen Bereich, dann die verschiedenen Bedingungen.

  • =FILTER(A1:E17;A1:A17 >= DATE(2024;2;1);A1:A17<=DATE(2024;8;31))
    • Wir filtern den gesamten Bereich und suchen alle Buchungen zwischen dem 01.02.2024 und dem 31.08.2024.
    • Das Datum benötigen wir als Datumswert, dafür die DATE-Funktion.
  • =FILTER(A1:E17;(A1:A17 >= DATE(2024;2;1))*(A1:A17<=DATE(2024;8;31)))
    • Die UND-Verbindung können wir auch mit einem * ausdrücken, der Ausdruck ist mit dem obigen im Ergebnis identisch.
  • =FILTER(A1:E17;A1:A17 >= G19;A1:A17<=H19)
    • G19 enthält den Wert 01.02.2024, H19 den Wert 31.08.2024.
    • Man kann das Datum auch als Wert aus einer anderen Zelle holen, hier stehen Start- und Enddatum in den Zelle G19 und H19. Da diese Werte bereits als Datum formatiert sind, muss man sich nicht mit dem Format herumschlagen.
  • =FILTER(A1:E17;A1:A17 >= G19;A1:A17<=H19;C1:C17 = "Benzin")
    • Hier suchen wir zwischen den angegebenen Daten nach allen Ausgaben für Benzin.

Suchen mit regulären Ausdrücken

Bearbeiten
  • =FILTER(A1:E17;REGEXMATCH(D1:D17;"/24"))
    • Hier suchen wir nach allen Zeilen, in denen in Spalte D die Zeichenkette "/24" vorkommt.
    • Beachten Sie, dass die Suche nach Zahlen so nicht möglich ist, da REGEXMATCH nur in Zeichenketten sucht.

Logisches Oder

Bearbeiten

Die FILTER-Funktion sucht nach den Zeilen, in denen alle Kriterien erfüllt sind. Für eine Oder-Abfrage können wir einfach mehrere Abfragen mit einem + verbinden, die einzelnen Bedingungen müssen dabei in Klammern stehen.

  • =FILTER(A1:E17;(C1:C17 = "Benzin")+(C1:C17 = "Miete"))

Die Tabellenkalkulation sieht 0 als Wert für FALSE an, andere Werte (größer 0) als TRUE. Ist also die erste oder die zweite Bedingung wahr, ist das Ergebnis der Addition 1. Sind beide wahr, ist das Ergebnis 2, also auch wahr.

Logisches Oder und Und kombiniert

Bearbeiten

Für Kombinationen aus Oder- und Und-Bedingungen verwenden Sie das * für das logische Und.

  • =FILTER(A1:E17;((C1:C17="Miete")+(C1:C17="Benzin"))*(B1:B17>-100))
    • Ist also die Kategorie "Miete" oder "Benzin" und der Betrag größer als -100, ist das Ergebnis wahr.

Logisches Nicht

Bearbeiten
  • =FILTER(A1:E17;NOT(C1:C17 = "Benzin"))
    • Gibt alle Zeilen zurück, in denen in der Spalte C das Wort "Benzin" nicht vorkommt.

Rückgabe einer Zeile oder Spalte

Bearbeiten

Mit der INDEX-Funktion können wir uns eine Zeile oder Spalte des Auszugs ausgeben lassen.

  • =INDEX(FILTER(A1:E17;A1:A17 >= date(2024;2;1);A1:A17<=date(2024;8;31));0;1)
    • Es werden alle Zeilen, aber nur die erste Spalte ausgegeben.

Rückgabe mehrerer Spalten (oder Zeilen)

Bearbeiten

Geschachtelte FILTER-Funktion

Bearbeiten

Alternativ zur INDEX-Funktion können wir eine geschachtelte FILTER-Funkion verwenden.

  • =FILTER(FILTER(A1:E17;(A1:A17 >= date(2024;2;1))*(A1:A17<=date(2024;8;31)));(A1:E1 = "Datum")+(A1:E1 = "Kategorie"))
    • Der innere Filter filtert zunächst nach Datum größer gleich dem 01.02.2024 und kleiner gleich dem 31.08.2024. Der äußere Filter filtert dann nach den Spalten "Datum" und "Kategorie".

FILTER mit CHOOSECOLS

Bearbeiten

CHOOSECOLS lässt uns Spalten aus einem Bereich auswählen. CHOOSEROWS würde das gleiche mit Zeilen machen.

  • =CHOOSECOLS(FILTER(A1:E17;A1:A17 >= date(2024;2;1);A1:A17<=date(2024;8;31));1;3)
    • Hier wird nur die erste und dritte Spalte zurückgegeben.


Die Beispiele auf dieser Seite wurden getestet: 07/2024