Dynamische SVERWEIS-Abfragen über mehrere Tabellenblätter mit INDIREKT und VERGLEICH
Dieses Tutorial zeigt dir, wie du Daten aus verschiedenen Tabellenblättern abfragst, ohne für jedes Blatt eine eigene Formel schreiben zu müssen. Wir kombinieren den klassischen SVERWEIS mit INDIREKT (um das Blatt dynamisch zu wählen) und VERGLEICH (um die Spalte flexibel zu finden).
Das Szenario
Stell dir vor, du hast eine Excel-Datei mit Verkaufsdaten. Jedes Monat hat ein eigenes Tabellenblatt: Januar, Februar, März.
Auf einem Übersichtsblatt möchtest du nun ein Produkt eingeben und das Tabellenblatt auswählen, aus dem der Preis gezogen werden soll.
Schritt 1: Die Vorbereitung
Damit die Formel funktioniert, müssen die Tabellenblätter idealerweise identisch aufgebaut sein (z. B. Produktname in Spalte A, Preis in Spalte B).
- Benenne deine Blätter exakt (z. B.
Januar,Februar). - Erstelle auf deinem Hauptblatt zwei Eingabefelder:
- Zelle B1: Name des Tabellenblatts (z. B. "Januar")
- Zelle B2: Suchkriterium (z. B. Produkt-ID "P-001")
Schritt 2: Die INDIREKT-Funktion verstehen
Normalerweise sieht ein SVERWEIS so aus:
=SVERWEIS(B2; 'Januar'!A:C; 2; FALSCH)
Das Problem: Der Blattname 'Januar'! ist fest in der Formel. Mit INDIREKT machen wir ihn variabel.
Die Logik: INDIREKT("'" & B1 & "'!A:C")
Excel baut aus dem Text in B1 einen echten Zellbezug.
Schritt 3: Die MATCH (VERGLEICH) Funktion ergänzen
Anstatt die Spaltennummer (z. B. „2“) fest einzutippen, nutzen wir VERGLEICH, um die richtige Spalte anhand der Überschrift zu finden. Das macht die Formel immun gegen neu eingefügte Spalten.
VERGLEICH("Preis"; INDIREKT("'" & B1 & "'!1:1"); 0)
(Sucht das Wort "Preis" in Zeile 1 des gewählten Blatts).
Schritt 4: Die finale Formel (Kombination)
Setzen wir alles zusammen in die Zelle, in der das Ergebnis erscheinen soll:
=SVERWEIS(B2; INDIREKT("'" & B1 & "'!A:Z"); VERGLEICH("Preis"; INDIREKT("'" & B1 & "'!1:1"); 0); FALSCH)
Erklärung der Bausteine:
B2: Das ist dein Suchwert (z.B. die Produkt-ID).INDIREKT("'" & B1 & "'!A:Z"): Hier wird der Tabellenblattname aus Zelle B1 geholt. Die Hochkommas'sind wichtig, falls dein Blattname Leerzeichen enthält (z. B. "Januar 2024").VERGLEICH(...): Sucht die Spaltennummer, in der "Preis" steht.FALSCH: Stellt sicher, dass nur eine exakte Übereinstimmung gefunden wird.
Bonus: Profi-Tipp für Fortgeschrittene (SVERWEIS über ALLE Blätter)
Wenn du nicht weißt, in welchem Blatt sich der Wert befindet, und Excel alle Blätter gleichzeitig durchsuchen soll, wird es komplizierter. Eine einfache Lösung ohne Makros ist hier die Verwendung einer Liste aller Blattnamen:
- Erstelle eine Liste deiner Blattnamen (z. B. Bereich
E1:E3enthält Januar, Februar, März). - Benenne diesen Bereich über das Namensfeld (oben links neben der Bearbeitungsleiste) als BlattListe.
- Nutze folgende Matrix-Formel (mit
STRG+UMSCHALT+ENTERbestätigen, falls du kein Office 365 hast):
=SVERWEIS(B2; INDIREKT("'" & INDEX(BlattListe; VERGLEICH(WAHR; ANZAHLWENN(INDIREKT("'" & BlattListe & "'!A:A"); B2)>0; 0)) & "'!A:C"); 2; FALSCH)
Was passiert hier? ANZAHLWENN prüft in allen Blättern der Liste, wo der Wert existiert. INDEX gibt den Namen dieses Blattes an den SVERWEIS weiter.
Häufige Fehlerquellen
- Schreibweise: Der Text in deiner Zelle (B1) muss exakt so heißen wie das Tabellenblatt.
- Leerzeichen: Achte auf die einfachen Anführungszeichen
'innerhalb der INDIREKT-Funktion. - Bezüge: Wenn du die Formel kopierst, fixiere die Zellen mit
$(z. B.$B$1).
Mit dieser Methode sparst du dir mühsame manuelle Anpassungen und hast ein dynamisches Dashboard!