(C) 2009 - 2021 by Mourad Louha · Alle Rechte vorbehalten

Platzhalter in der Formel zur Textsuche in Excel und PowerPivot

Während ich meinen Teilartikel über PowerPivot für die c’t Ausgabe 16/2010 geschrieben hatte, war mir aufgefallen, dass die DAX Funktion „Search“ in PowerPivot anscheinend Platzhalter unterstützt. Die Möglichkeit zur Verwendung von Platzhaltern wird in der PowerPivot Dokumentation nirgends erläutert; jedenfalls nicht zum Zeitpunkt meiner Recherchen.

Insofern habe ich mich an den PowerPivot Spezialisten Kaspar de Jonge gewandt und in seinem Blog nachgefragt, ob er mir weiterhelfen könnte. Kaspar schreibt nicht nur interessante Artikel über PowerPivot, sondern stellt auch ein Formular zur Verfügung, wo jeder, der mag, Fragen zu PowerPivot stellen kann. Und Kaspar hatte die zündende Idee: die DAX Funktion „Search“ ist ein Abbild der entsprechenden Excel Formel „Suchen“ bzw. „Search“ in Englisch. Ausserdem gab’s in seinem Artikel zur Beantwortung meiner Frage eine kleine Hintergrundinfo zu PowerPivot; nämlich dass in vielen Fällen der Code zu den Excel Formeln in PowerPivot durch Kopieren und Einfügen übernommen wurde, weshalb diese sich dann sehr ähnlich verhalten.

Wenn man sich nun die Excel Formel „Suchen“ genauer anschaut, können im Text, der gesucht werden soll, die Platzhalter * und ? verwendet werden.

Excel Formel Suchen

Das Sternchen steht dann für eine beliebige Zeichenfolge und das Fragezeichen für einen beliebigen einzelnen Buchstaben. Der obige Screenshot zeigt ein paar Beispiele dazu. Links steht der Text, der durchsucht werden soll und rechts sind ein paar Suchbegriffe definiert. Die Formel „Suchen“ liefert im Erfolgsfall (also falls der gesuchte Text gefunden wurde) die Position des gesuchten Textes im durchsuchten Text zurück. Für den Fall, dass der Suchtext nicht gefunden wurde, liefert die Formel „Suchen“ den Fehlerwert #WERT zurück. Insofern ist es sinnvoll, wenn die Formel verwendet wird, eine Fehlerabfrage einzubauen. Im unseren Beispiel sieht die Formel dann wie folgt aus:

C5 = WENN(ISTFEHLER(SUCHEN(C$3;$B5;1));0;SUCHEN(C$3;$B5;1))

Die Formel „Suchen“ ignoriert Groß- und Kleinschreibung, möchten Sie diese berücksichtigen, kann die Formel „Finden“ verwendet werden; allerdings unterstützt diese Formel leider keine Platzhalter.

Im Screenshot ist zum Beispiel als Suchbegriff „.co*/url“ angegeben. Hier werden dann alle im zu durchsuchenden Text enthalten Teiltexte gefunden, die mit „.co“ beginnen und mit „/url“ aufhören. Also quasi alle Domains, die vorneweg „co“ enthalten und als Übergabeparameter „url“ enthalten. Das heißt, dass aber auch „com.au/url“ gefunden wird. Möchten wir dies weiter eingrenzen und nur die „co“ Landesdomains filtern, kann als Suchbegriff beispielsweise „co.??/“ verwendet werden.

In derselben Art und Weise funktioniert die PowerPivot DAX Funktion „Search“. Eine mögliche Umsetzung der Excel Formel in PowerPivot wäre dann:

=IF(IFERROR(SEARCH("google.*/url",[Referer],1),0)>0,
 SEARCH("google.*/url",[Referer],1),0)

Der Suchbegriff ist in diesem Fall „google.*/url“ und da PowerPivot spalten- und nicht zellenbasiert arbeitet, wurde die Spalte „[Referer]“ als zu durchsuchender Text angegeben.

Abschließend, wie Sie sicherlich schon bemerkt haben, habe ich hier eine vereinfachte Form einer URL Prüfung der Referer von Google vorgenommen. Eigenen einfachen Auswertungen von Webserver Logfiles steht somit nichts mehr im Wege.

Dieser Artikel wurde auch in der englischen Verson vom Excel Ticker publiziert.