Excel 365: "Filter während der Eingabe" – Suchfeld ohne VBA erstellen
Hier ist ein ausführliches Tutorial, wie du in Excel 365 eine dynamische Suchfunktion erstellst, die deine Daten sofort filtert, während du tippst – und das ganz ohne Makros (VBA).
Diese Methode nutzt die neuen dynamischen Array-Funktionen von Excel 365. Wir kombinieren die Funktionen FILTER, SUCHEN und ISTZAHL.
Voraussetzungen
- Excel Version: Office 365 oder Excel 2021 (unterstützt dynamische Arrays).
- Beispieldaten: Eine Tabelle mit Daten (z. B. eine Kundenliste mit Name, Stadt und Produkt).
Schritt 1: Die Daten vorbereiten
Damit die Formeln später leichter zu lesen sind, solltest du deine Daten als Tabelle formatieren.
- Markiere deinen Datentest (z. B. Bereich
A5:C20). - Drücke Strg + T und bestätige mit "OK".
- Klicke oben im Menü auf "Tabellenentwurf" und gib der Tabelle links einen Namen, z. B.
MeineDaten.
Schritt 2: Das Suchfeld erstellen
- Wähle eine Zelle oberhalb deiner Daten aus, in die du später den Suchbegriff tippst (z. B. Zelle B2).
- Du kannst diese Zelle farblich markieren oder einen Rahmen ziehen, damit sie wie ein Suchfeld aussieht.
- Optional: Beschrifte die Zelle daneben (A2) mit "Suche:".
Schritt 3: Die magische FILTER-Formel schreiben
Gehe nun zu der Stelle, an der das gefilterte Ergebnis erscheinen soll (z. B. Zelle A8). Dort gibst du folgende Formel ein:
=FILTER(MeineDaten; ISTZAHL(SUCHEN(B2; MeineDaten[Name])); "Keine Treffer")
Was macht diese Formel?
FILTER(...): Zeigt nur die Zeilen ausMeineDatenan, die eine bestimmte Bedingung erfüllen.SUCHEN(B2; MeineDaten[Name]): Sucht den Text aus deinem Suchfeld (B2) in der Spalte "Name". Wenn der Text gefunden wird, gibt Excel die Position als Zahl zurück.ISTZAHL(...): Verwandelt das Ergebnis vonSUCHENin WAHR (wenn gefunden) oder FALSCH (wenn nicht gefunden)."Keine Treffer": Dies ist der Text, der angezeigt wird, wenn die Suche kein Ergebnis liefert.
Schritt 4: In mehreren Spalten gleichzeitig suchen
Meistens möchte man nicht nur in einer Spalte (z. B. Name) suchen, sondern auch in der Stadt oder dem Produkt. Das erreichst du durch Addition der Bedingungen:
=FILTER(MeineDaten;
ISTZAHL(SUCHEN(B2; MeineDaten[Name])) +
ISTZAHL(SUCHEN(B2; MeineDaten[Stadt])) +
ISTZAHL(SUCHEN(B2; MeineDaten[Produkt]));
"Keine Treffer")
Hinweis: In der Logik von Excel-Arrays entspricht das Pluszeichen (+) einer ODER-Verknüpfung.
Schritt 5: Das "Echtzeit"-Gefühl (Der Trick)
Normalerweise filtert Excel erst, wenn du die Eingabe in Zelle B2 mit Enter bestätigst. Um ein echtes "Filter while you type"-Gefühl zu bekommen, gibt es einen kleinen Trick ohne VBA:
- Gehe auf den Reiter Entwicklertools. (Falls nicht sichtbar: Rechtsklick auf ein Menüband -> Menüband anpassen -> Haken bei "Entwicklertools" setzen).
- Klicke auf Einfügen -> ActiveX-Steuerelemente -> Textfeld (Text Box).
- Ziehe das Textfeld über deine Zelle B2.
- Rechtsklick auf das neue Textfeld -> Eigenschaften.
- Suche das Feld LinkedCell und tippe dort B2 ein.
- Deaktiviere den Entwurfsmodus in der Menüleiste.
Der Effekt: Jedes Mal, wenn du nun einen Buchstaben in das Textfeld tippst, wird dieser sofort in die Zelle B2 geschrieben. Da B2 die Quelle für unsere FILTER-Formel ist, aktualisiert sich das Ergebnis in Echtzeit nach jedem Tastendruck!
Bonus: Design-Tipp
Damit man die hässliche Zelle B2 hinter dem Textfeld nicht sieht:
- Formatiere die Schriftfarbe in Zelle B2 auf Weiß.
- Oder lege das Textfeld exakt passend über die Zelle.
Zusammenfassung
Du hast nun ein voll funktionsfähiges Suchsystem, das:
- Dynamisch ist (neue Daten in der Tabelle werden automatisch erkannt).
- Teilbegriffe findet (dank
SUCHEN). - In Echtzeit filtert (dank des verknüpften Textfeldes).
- Keine Makros benötigt (die Datei kann als normale
.xlsxgespeichert werden).