morefire
MENÜ

RegEx in Google Tabellen nutzen (Praxisbeispiel)

Reguläre Ausdrücke (RegEx) werden in Google Analytics fleißig genutzt. Sie sind richtige Alltagshelfer und erleichtern unsere Arbeit. Allerdings ist ihr Einsatzbereich vielfältiger als man denkt. In meinem Artikel werde ich Euch anhand eines Beispiels zeigen, wie man RegEx auch in Google Tabellen nutzen kann.

Das Problem

Alles hat mit einem ganz normalen Ereignis angefangen. Die Ereignisse haben gut funktioniert, alles wurde übergeben und um genau zu sein, sogar auch das, was eigentlich nicht ins Analytics-Konto gehört. Hier lag das Problem. Das Ereignislabel sah erschreckend aus, war unübersichtlich und man konnte nicht nachvollziehen, was überhaupt berechnet wurde (es ging um ein Berechnungsprogramm für verschiedene Anlagen). Das Ergebnis sah also folgendermaßen aus:

RegEx 1

Da ich RegEx unbedingt über die einfachen Filter hinaus nutzen wollte, habe ich mich entschieden, das Problem damit zu lösen. Mein Beispiel setzt bestimmte Vorkenntnisse in RegEx voraus. Wer über diese nicht verfügt, dem würde ich empfehlen, zuerst den Artikel von Paul Koks über das Thema durchzugehen. Nachdem man dies gemacht hat (oder auch nicht), kann man direkt mit dem “RegEx-Kampf” anfangen. 🙂

In diesem Artikel beschreibe ich anhand eines Beispiels die Vorgehensweise, wie man mit einfachen regulären Ausdrücken auch komplexere Filter erstellt, was man berücksichtigen soll, welche Probleme auftreten können usw. Auch wenn mein Beispiel sehr spezifisch ist, das Prinzip ist immer das Gleiche und hilft zumindest eine Antwort auf die erste Frage zu finden: Womit fange ich an?

Step by Step in Richtung Problemlösung:

1. Die Google Analytics Tabelle als Google Tabelle exportieren.

Zwar unterstützt Microsoft Excel die RegEx, aber nicht in der Form, in der wir sie kennen. Meine Vorgehensweise würde dort also nicht funktionieren.

Export

2. Struktur erkennen.

Gibt es ein bestimmtes Muster, woran ich mich orientieren kann? Was passt im Muster nicht und bereitet mir eventuell noch Probleme? Mögliche Probleme vorauszusehen, ist auch hier nicht leicht. Denn, was viele vielleicht schon kennen: Meistens kommen sie genau dann zum Vorschein, wenn man denkt, man hätte es endlich hinbekommen. 🙂

In meinem Beispiel kam zuerst die erfreuliche Nachricht: “Bitte wählen …”. Diese wurde immer zweimal wiederholt und auf den ersten Blick war es immer derselbe Text. Nur die Leerzeichen schienen irgendwie nicht ins Muster zu passen. Auf den zweiten Blick habe ich aber bemerkt, dass die Reihenfolge der Zahlen nicht immer stimmte. Ich konnte sie also nicht wie den exakt gleichen Text behandeln. Auch Wort-Charaktere musste ich ausschließen, denn direkt nach den Parametern gibt es spezielle Charaktere [ ], die sich nicht als Wort behandeln lassen.

3. Entscheiden, welche Befehle einem zur Verfügung stehen und welche man benötigen könnte.

Es gibt drei RegEx-Befehle in Google Tabellen:

  1. REGEXTRACT – extrahiert übereinstimmende Teil-Strings anhand eines regulären Ausdrucks.
  2. REGEXMATCH – gibt an, ob ein Textausschnitt mit einem regulären Ausdruck übereinstimmt.
  3. REGEXREPLACE – ersetzt einen Teil einer Textzeichenfolge mittels regulärer Ausdrücke durch eine andere Textzeichenfolge.

Nach einer langen Erwägung aller wichtigen Faktoren, die ich im Schritt 2 erwähnt habe, habe ich mich letztendlich für REGEXREPLACE entschieden.

Je nachdem, welches Tool man nutzt, sollte man mit bestimmten Einschränkungen rechnen. Eine große Einschränkung in diesem Fall war, in Google Tabellen keine Möglichkeit zu haben, Lookarounds zu nutzen.

4. Erst nachdem alle (möglichen) Probleme erkannt und die Struktur verstanden wurde, mit der eigentlichen Arbeit anfangen.

Hier hieß es Capture Groups (Gruppierungskonstrukte) zu definieren. Auf dem Screenshot sind diese mit den unterschiedlichen Farben unterstrichen.

RegEx 2

Die Gruppe mit der roten Linie enthält die Parameter, die im besten Fall am Ende übrig bleiben. Alle anderen Gruppen sollten verschwinden. Wobei mich “Leistung berechnen” nicht sehr stört und gerne bleiben darf. 🙂

5. Den Befehl definieren. Die Gruppen sehen dann so aus:

RegEx Befehl

A16 bezieht sich auf die Zeile, in der der zu bearbeitende Text steht.

RegEx Text

Bitte wählen(.*?)Bitte wählen(.*?) stellen die ersten zwei Gruppen dar.

RegEx Ex

(Rahmenaußenbreite \[mm\]|Bodenkanalhöhe \[mm\]|Bodenkanallänge \[mm\]|Rostart|Rostausführung|System|Regelungsvariante|$) stellt die dritte Gruppe dar.

RegEx Ersatz

\[mm\] – \ – die Backslashs dürfen nicht vergessen werden. Sie zeigen, dass [ ] keine spezielle Funktion haben, sondern einen Teil des Texts darstellen.

|$ bedeutet nur, dass nach der letzten Wiederholung von den ersten zwei Gruppen, kein Argument mehr folgen muss.

6. Wie der Befehl auch besagt: Statt die unnötigen Gruppen zu löschen, werden wir sie überschreiben.

Damit auch unser Befehl weiß, womit wir sie überschreiben wollen, müssen wir erst den Ersatztext definieren, beziehungsweise auf den schon vorhandenen Text hinweisen.

Als Ersatztext wird in unserem Fall auf die dritte Gruppe hingewiesen und dafür nutzen wir folgenden Ausdruck: „$3“.

Das ist aber nur eine Google Tabellen-Lösung, da sie, wie oben erwähnt, keine Lookarounds unterstützen. In anderen Tools würde das Ergebnis also anders aussehen. Das ist aber nicht das Thema meines Blogartikels. 🙂

Die Endversion unseres Befehls sieht dann folgendermaßen aus:

Endversion

Der letzte Schritt?

7. Das Ergebnis genießen! ^^

Ergebnis

Anmerkung: Wie man vielleicht bemerkt hat, ist auch “Leistungen berechnen” verschwunden, was eigentlich nur halbwegs selbstverständlich ist.

Der Grund: Nach der letzten Benachrichtigung “Bitte wählen …” kam kein Argument mehr. Also nichts davon, was in der dritten Gruppe aufgelistet wurde. “Leistungen berechnen” wurde deswegen zu der zweiten Gruppe gezählt, als nutzlos eingestuft und ersetzt. Wäre es einem Argument gefolgt, wäre genau das Gegenteil der Fall.

Fazit

Es kostet Zeit, sich mit den regulären Ausdrücken auseinanderzusetzen. Es lohnt sich aber für schwierigere Fälle auf jeden Fall. Hat man einige solcher Beispiele mit dem RegEx gelöst, dann hat man das Prinzip für alle Male verstanden und wird nur noch wenige Minuten für die Lösungen brauchen.

Ich hoffe, mein Beispiel war für den einen oder anderen hilfreich und hat motiviert, sich öfter mit dem Thema zu beschäftigen. 🙂

Tata ist Consultant Web Analytics bei morefire. Sie kommt aus Georgien und studiert Sozialwissenschaften (B.A.) an der Universität zu Köln. Privat interessiert sie sich für Arthouse- und europäische Filme, sowie 50iger, 60iger und 70iger Jahre Musik und findet den täglichen Ausgleich beim Kickboxen.

5 / 5 (2 votes)

Schreibe einen Kommentar

Loading Facebook Comments ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Loading Disqus Comments ...