Tutorial: Die Excel FILTER-Funktion über mehrere Tabellenblätter hinweg nutzen

Melden

Hier ist ein ausführliches Tutorial, wie du die FILTER-Funktion in Excel über mehrere Tabellenblätter (Worksheets) hinweg einsetzt.

Die normale FILTER-Funktion in Excel ist darauf ausgelegt, Daten aus einem einzelnen Bereich zu filtern. Wenn deine Daten jedoch über mehrere Blätter verteilt sind (z. B. Verkaufsdaten für Januar, Februar und März), musst du einen Trick anwenden.

Seit der Einführung von VSTACK (In Stapel speichern) ist dies extrem einfach geworden.


Voraussetzungen

  • Excel-Version: Du benötigst Microsoft 365 oder Excel 2021 (Versionen, die dynamische Arrays unterstützen).
  • Struktur: Die Tabellenblätter sollten idealerweise die gleiche Spaltenstruktur haben.

Schritt 1: Das Grundkonzept (Daten zusammenführen)

Bevor wir filtern können, müssen wir die Daten der verschiedenen Blätter "virtuell" übereinanderstapeln. Dafür nutzen wir die Funktion VSTACK.

Syntax von VSTACK: =VSTACK(Tabelle1!A2:E100; Tabelle2!A2:E100; Tabelle3!A2:E100)

Dies erstellt eine lange Liste aus allen drei Tabellenbereichen.


Schritt 2: Die FILTER-Funktion anwenden

Nun verschachteln wir VSTACK in die FILTER-Funktion. Angenommen, wir wollen alle Zeilen aus den Blättern "Januar", "Februar" und "März" sehen, in denen der Verkäufer (Spalte A) "Schmidt" heißt.

Die Formel:

=FILTER(
   VSTACK(Januar!A2:C10; Februar!A2:C10; März!A2:C10); 
   CHOOSECOLS(VSTACK(Januar!A2:C10; Februar!A2:C10; März!A2:C10); 1) = "Schmidt"
)

Erklärung der Komponenten:

  1. Array: VSTACK(...) liefert den gesamten Datenpool.
  2. Include (Bedingung): Wir müssen die Spalte angeben, in der nach "Schmidt" gesucht werden soll. Da unser Stapel virtuell ist, nutzen wir CHOOSECOLS(..., 1), um die erste Spalte des Stapels für die Prüfung auszuwählen.
  3. Kriterium: = "Schmidt"

Schritt 3: Die Profi-Methode (Mit Tabellen)

Die obige Methode hat einen Nachteil: Wenn du in "Januar" neue Zeilen hinzufügst, musst du den Bereich (A2:C10) manuell anpassen. Nutze stattdessen Intelligente Tabellen.

  1. Markiere die Daten auf jedem Blatt und drücke STRG + T.
  2. Benenne die Tabellen oben links im Menü (z. B. TabJan, TabFeb, TabMärz).
  3. Verwende nun diese Namen in der Formel:
=FILTER(
   VSTACK(TabJan; TabFeb; TabMärz); 
   INDEX(VSTACK(TabJan; TabFeb; TabMärz); ; 1) = "Schmidt"
)

(Hinweis: INDEX(Bereich; ; 1) ist eine Alternative zu CHOOSECOLS, um die erste Spalte anzusprechen).


Schritt 4: Umgang mit leeren Zeilen (Fehlervermeidung)

Wenn du ganze Spalten markierst (z. B. A:C), wird VSTACK viele leere Zeilen enthalten, was zu Fehlern führen kann. Um das zu verhindern, füge eine zusätzliche Bedingung ein, die prüft, ob die Zelle nicht leer ist:

=LET(
    GesamtDaten; VSTACK(Januar!A2:C100; Februar!A2:C100);
    SpalteVerkäufer; INDEX(GesamtDaten; ; 1);
    FILTER(GesamtDaten; (SpalteVerkäufer = "Schmidt") * (SpalteVerkäufer <> ""))
)

Hier nutzen wir die LET-Funktion, um die Formel übersichtlicher zu machen und Rechenleistung zu sparen.


Tipps & Tricks

  • Überschriften: VSTACK stapelt nur die Daten. Die Überschriften solltest du manuell einmal über deine Formelzelle schreiben.
  • Unterschiedliche Spaltenanzahl: VSTACK funktioniert nur reibungslos, wenn alle Bereiche die gleiche Anzahl an Spalten haben.
  • 3D-Referenzen: Wenn du sehr viele Blätter hast (z. B. 50 Blätter), funktioniert VSTACK(Blatt1:Blatt50!A2:C10) leider aktuell noch nicht direkt innerhalb der FILTER-Funktion. In diesem Fall ist Power Query die bessere Wahl.

Zusammenfassung

Die Kombination aus FILTER und VSTACK ist der modernste Weg, um Daten aus mehreren Blättern ohne VBA oder kompliziertes Kopieren zusammenzuführen. Mit LET bleibt deine Formel dabei performant und lesbar.

0