Live-Suche in der Excel-Suchmaschine

Wie Du in Excel eine simple Suchmaschine programmieren und einrichten kannst, wurde in einem älteren Beitrag (siehe Suchmaschine programmieren) illustriert. Hier wird nun ergänzt, wie Du eine Live-Suche etablierst, damit direkt nach Eingabe eines Suchkriteriums die Liste auf die entsprechenden Einträge gefiltert wird.

Nehmen wir nach wie vor an, dass in der Zelle "B1" das Suchkriterium steht. Falls sich also diese Zelle ändert, hat die Suchmaschine direkt zu reagieren. Das Makro aus dem Beitrag "Suchmaschine programmieren" ist hierzu nicht in einem Modul abzulegen, sondern direkt im entsprechenden Tabellenblatt (=Tabelle1 (Suchmaschine))!

vbaprojekttabelle

Zudem ist der Code leicht anzupassen, respektive  um nachfolgende zusätzliche Angaben zu ergänzen. Der vollständige Code wird dann weiter unten aufgeführt.

Anstelle von "Sub Suchmaschine()" zu Beginn hat die erste Codezeile zu lauten:

Private Sub worksheet_change(ByVal target As Range)

Zudem ist eine Wenn-Dann-Kondition einzubauen, die auf die Zelle "B1" verweist - und eben beim Anpassen dieser Zelle das Makro automatisch auslöst.

If target.Row = 1 And target.Column = 2 Then

Darauf folgt der gesamte Code der Suchmaschine, abgeschlossen (vor "End Sub") mit dem Befehl:

End If

Der vollständige Code ...

... (nicht in Modul1 sondern im Tabellenblatt direkt, wie oben erwähnt) lautet demnach:

Private Sub worksheet_change(ByVal target As Range)

If target.Row = 1 And target.Column = 2 Then

Range("D2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$D$8").AutoFilter Field:=4, Criteria1:="<>0"

AnzahlTreffer = Application.WorksheetFunction.Subtotal(3, Range("A:A")) - 2

MsgBox ("Insgesamt " & AnzahlTreffer & " Treffer gefunden.")

End If

End Sub

Die Eingabe des Platzhalters/Sternchens (*) erübrigen

Beim Programmieren der Suchmaschine habe ich Dir aufgezeigt, dass das Suchkriterium jeweils mit einem Sternchen vor- und nachher versehen werden sollte - beispielsweise "*Pop*". Um diesem vorzubeugen (es ist also nur noch der Begriff einzugeben, ohne Platzhalter-Symbol), ist die WVERWEIS-Formel minim anzupassen. Wir kombinieren jeweils den Text "*" mit dem Zellbezug auf das Suchkriterium in "B1". Für die Zeile 3 lautet die Formel wie folgt (und kann auf sämtliche weiteren Zeilen herunterkopiert werden):

=WENNFEHLER(WVERWEIS("*"&$B$1&"*";A3:C3;1;FALSCH);0)

Diagramm-Datenreihen ausblenden

Wir können Informationen aus grafischen Darstellungen und Diagrammen besser herauslesen, als wenn wir die gesamte Datenquelle überfliegen. Es gibt jedoch überladene Diagramme - und um daraus die für einen relevanten Informationen anzuzeigen, stelle ich hier dar, wie man einzelne Diagramm-Datenreihen ausblenden kann. Voraussetzung ist natürlich, dass Du die Grafik in Form einer Excel-Tabelle erhältst - beispielsweise dieses Diagramm:

 datenreihenausblendendiagramm

Angenommen, Du möchtest Dich nun erstmal nur vollumfänglich auf den Umsatz konzentrieren, kann die Datenreihe "Absatz" ausgeblendet werden. Eine Möglichkeit besteht darin, in der Datenquelle die Spalte oder Zeile mit den Angaben zu "Absatz" auszublenden. Falls die Datenreihe nicht aus dem Diagramm verschwindet, prüfe bitte die Diagrammeinstellungen: Gehe hierfür mittels Rechtsklick auf Dein Diagramm auf "Daten auswählen..." → in der linken unteren Ecke auf "Ausgeblendete und leere Zellen" und stelle sicher, dass bei "Daten in ausgeblendeten Zeilen und Spalten anzeigen" kein Haken gesetzt ist:

ausgeblendeteundleerezellen

Neuere Excel-Versionen (ab 2013)

Die oben beschriebene Möglichkeit funktioniert in allen Excel-Versionen. Ab Excel 2013 hast Du zudem direkt im Diagramm einen Filter. Klicke dazu auf Dein Diagramm und gehe rechts auf das "Filter-/Trichter-Symbol" datenreiheausblendenfiltersymbol. Entferne nun die Selektion bei "Absatz" und bestätige Deine Auswahl mit "Anwenden":

datenreiheausblendenfiltereingabe

Nun wirst Du Dich im vorliegenden Diagramm voll und ganz auf die Umsatz-Datenreihe fokussieren können.

datenreihenausblendendiagrammumsatz1

Zeitachse für PivotTabelle einfügen (analog Slicer/Datenschnitt)

Analog der im Beitrag "Slicer/Datenschnitt einfügen" präsentierten Methode, PivotTabellen übergreifende "Filter" und Schaltflächen einzufügen, stelle ich Dir hier die "Zeitachse" vor. Es besteht also auch die Möglichkeit, einen Datumsfilter Pivot-übergreifend zu erstellen. Voraussetzung dazu ist, dass Deine Datenquelle ein Datum aufweist. Als Beispiel habe ich Dir hier eine mögliche Datenquelle:

Sobald Du eine Pivot-Tabelle erstellt hast, kannst Du via der Menüleiste unter "PivotTable-Tools" → "Analysieren" eine Zeitachse einfügen:

zeitachseeinfuegen

Nun erhältst Du unmittelbar neben der Pivot ein neues Objekt: Die Zeitachse.

zeitachsefull

Wie erwähnt, dient die Zeitachse als Filter für Deine Daten. Einerseits kannst Du eine Selektion mit den Reglern auf der linken und rechten Seite der Daten machen. In der rechten oberen Ecke ist zudem eine Auswahl aufklappbar (siehe Bild unten). Darin kann - je nach Datenquelle - die Granularität des Filters eingestellt werden. Selektierst Du beispielsweise Quartale oder Jahre, wird die Zeitachse entsprechend angepasst.

zeitachseselektion

Mehrere PivotTabellen verknüpfen

Im anfangs verlinkten Beitrag "Slicer/Datenschnitt einfügen" habe ich aufgezeigt, dass man die Filter mehrerer PivotTabellen verknüpfen kann. Dies gilt auch für Zeitachsen. Selektiere hierzu Deine Zeitachse, gehe auf "Zeitachsentools" in der Menüleiste → "Berichtsverbindungen". Voraussetzung ist, dass Du mehrere PivotTabellen mit der gleichen Datenquelle hast! Nachdem die Verbindung zu mehreren PivotTabellen hergestellt wurde, kann der Filter auf der Zeitachse einmal gestellt werden, die Tabellen reagieren dann sofort auf die getätigte Selektion.