Textinhalt vergleichen und markieren
In diesem Tutorial zeige ich Euch wie Ihr mit der GOOGLE TABELLEN Script Programmierung einen Bereich durchsuchen und den Textinhalt vergleichen könnt. Dieses Script "vergleicheTextinhaltUndMarkiereZelle" hat sehr viel Ähnlichkeit mit dem Tutorial Zellen vergleichen & markieren / Array (Google Tabellen / Spreadsheets) Script, allerdings wird in diesem Tutorial hier auch der Inhalt der Zelle verglichen. Das heißt, dass man nur einen Teil des Textes benötigt um die Zelle markieren zu können.
Ich benutze hierfür die Möglichkeit eines Objektes welches für reguläre Ausdrücke gedacht ist. Das coole an der Sache ist auch das man sogar reguläre Ausdrücke verwenden kann. Im unteren Bereich findet Ihr ein paar Beispiele für die Benutzung von regulären Ausdrücken anhand einer Beispieltabelle.
Wer jetzt das erste mal ein Google Tabellen Script programmiert, sollte sich zuerst dieses Tutorial hier anschauen: Mein erstes Google Tabellen Script programmieren
Suchbegriff in einer Zelle
In der Tabelle gibt es eine Zelle mit einem Suchbegriff oder Suchwort. Die Eingabe benutzen wir um eine festgelegte Spalte zu durchsuchen. Rechts neben den Einträgen setzen wir dann eine Markierung wenn der Suchbegriff vorkommt.
Der Bereich aus der Spalte die durchsucht werden soll wird mittels getRange in ein Array eingelesen. Über eine eine FOR-Schleife "for(x in data)" arbeiten wir die Eintrage ab und vergleichen diese.
Mit new RegExp erstellen wir ein Objekt mit dem wir reguläre Ausdrücke vergleichen können. Als ersten Parameter habe ich das Suchwort verwendet. Im zweiten Parameter habe ich festgelegt das ich die Groß- und Kleinschreibung ignorieren möchte. Wollt Ihr genau nach dem Suchen was Ihr in der Zelle als Suchwort eingegeben habt, dann solltet Ihr den Parameter (inklusive Komma) löschen. Dadurch wird dann die Groß- Kleinschreibung wieder beachtet.
Markierungen löschen
In der zweiten Funktion "zellenbereichInhaltLoeschen" wird der Bereich mit den Markierungen wieder gelöscht. Hier müsst Ihr den Bereich dann angeben der durch Aufruf der Funktion gelöscht werden soll. Solche kleinen Funktionen findet Ihr übrigens auch im Bereich Google Tabellen Script Programmierung / Snippets.
Dieses Tutorial ist extra für Anfänger die sich mit dem Tabellenkalkulationsprogramm GOOGLE TABELLEN / SPREADSHEETS noch nicht so viel beschäftigt haben und zeigt die Funktionen und Möglichkeiten Schritt für Schritt.
Hier das Script "Textinhalt vergleichen & markieren" zum Kopieren
function vergleicheTextinhaltUndMarkiereZelle(){ var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tabellenblatt1"); var startzeile=2; // Zeile ab der die Suche beginnen soll var endzeile=sheet.getLastRow(); // Zeile in der die Suche beendet wird var suchwortZelle="C1"; // Zelle wo sich das Suchwort befindet var suchSpaltenIndex=1; // Spalte in der gesucht wird var markierungsSpaltenIndex=2; // Spalte in der die Markierung gesetzt werden soll var markierung="x"; // Markierung die gesetzt werden soll //In nachfolgender Zeile habe ich den letzten Parameter von getRange auf 1 gesetzt, da hier die Anzahl der Spalten gesetzt werden muss. //Da wir nur in einer Spalte suchen müssen sollte hier auch eine 1 stehen. var daten=sheet.getRange(startzeile, suchSpaltenIndex, endzeile, 1).getValues(); // Daten holen var aktuelleZeilennummer=startzeile; // Variable die anzeigt in welcher Zeile wir uns befinden var regulaererAusdruck= new RegExp(sheet.getRange(suchwortZelle).getValue(),"i"); for(x in daten){ var zellInhalt=daten[x]; if(regulaererAusdruck.test(zellInhalt)){ sheet.setActiveRange(sheet.getRange(aktuelleZeilennummer,markierungsSpaltenIndex)).setValue(markierung); } aktuelleZeilennummer++; } } function zellenbereichInhaltLoeschen(){ var sheet=SpreadsheetApp.getActiveSheet(); var destination="B2:B1000"; sheet.getRange(destination).setValue(""); }
Die Verwendung von diesem Script geschieht wie immer auf eigene Gefahr.
Reguläre Ausdrücke mit Beispielen:
Hier zeige ich Euch ein paar Beispiele was heraus kommt wenn man die folgenden Regulären Ausdrücke als Suchbegriff verwendet.
Bedenkt aber das ich die Groß- und Kleinschreibung dabei im Suchtext ignoriert habe.
Benutzt habe ich folgende Beispieltabelle die auch im Video zu sehen ist:
Name | Suchbegriff: | Peter |
Claudia | ||
Andrea | ||
Michaela | ||
Thomas | ||
Regina | ||
Angela | ||
Peter | x | |
Gaby | ||
Petra | ||
Klaus | ||
Micha | ||
Thorsten |
Suchbegriff: Clau
Markiert: Claudia
Info: Hier sucht das Script nach Clau innerhalb des gesamten Textes.
Suchbegriff: Pe.er
Markiert: Peter
Info: Der . steht für ein beliebiges Zeichen, deshalb wird Peter zurückgegeben.
Suchbegriff: Clau|Tho|Pe
Markiert: Claudia, Thomas, Peter, Petra, Thorsten
Info: Der Hochstrich steht für oder. Das Script markiert Zellen wo Clau, Tho oder Pe vorkommt.
Suchbegriff: A
Markiert: Claudia, Andrea, Michaela, Thomas, Regina, Angela, Gaby, Petra, Klaus, Micha
Info: Das Script markiert alles wo ein a oder A vorkommt.
Groß- Kleinschreibung wird ignoriert da als zweiter Parameter bei RegExp "i" steht.
Suchbegriff: ^A
Markiert: Andrea, Angela
Info: das ^ Zeichen steht für den Anfang. Hier muss am Anfang ein A vorkommen und wird markiert.
Suchbegriff: A$
Markiert: Claudia, Andrea, Michaela, Regina, Angela, Petra, Micha
Info: Das $ Zeichen steht für Ende. Deshalb muss als letzter Buchstabe ein A vor kommen.
Suchbegriff: ^….$
Markiert: Gaby
Info: Das ^ steht für Anfang, das $ Zeichen steht für Ende, der . steht für jedes beliebige Zeichen.
Deshalb markiert das Script nur Gaby, weil genau nach 4 beliebigen Zeichen gesucht wird (4 Punkte zwischen Anfang und Ende).
Suchbegriff: ^.[h|n]
Markiert: Andrea, Thomas, Angela, Thorsten
Info: Das ^ Zeichen steht für Anfang, der . steht für jedes beliebige Zeichen. In den eckigen Klammern legen wir fest welcher Buchstabe als nächstes kommen muss. Hier wird entweder h oder n erwartet. Also markiert das Script den Text wo der zweite Buchstabe entweder ein n oder h ist.
Suchbegriff: [s|y]$
Markiert: Thomas, Gaby, Klaus
Info: Das $ Zeichen steht für Ende. In den eckigen Klammern legen wir fest welchen Buchstaben wir suchen wollen. Der Hochstrich steht wieder für ODER. Hier in diesem Beispiel muss der letzte Buchstabe also ein s oder y sein.
Euch gefällt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] 😉
Das Video-Tutorial "Textinhalt vergleichen & markieren (Google Tabellen Script)"
Das könnte Dich auch interessieren
- DO WHILE SCHLEIFE (Google Tabellen Script) Snippet
- Daten filtern ( Google Tabellen / Spreadsheets )
- FOR EACH SCHLEIFE (Google Tabellen Script) Snippet
- FOR SCHLEIFE (Google Tabellen Script) Snippet
- Google Tabellen Script autorisieren
- Text innerhalb der Zelle wechseln / austauschen (Google Tabellen)
- Tutorials über Google Tabellen
- Tutorials über Google Tabellen Script - Programmierung
- WHILE SCHLEIFE (Google Tabellen Script) Snippet
- Übersichts-Liste der Google Tabellen Tutorials
2 Comments
Hallo guten Tag
Ich habe eine Frage kann man auch mehrere Spalten nach einem Wert durchsuchen lassen und diese die nicht zutreffen ausblenden lassen.
Z.b Es soll nach "B" gesucht werden in 2A-2Z. Wenn in 2A="B" steht dann soll die Spalte A sichtbar sein. Wenn in Zelle 2E="A" dann soll die Spalte E ausgeblendet werden. usw. bis es die spalte Z erreicht.
Vielen dank im voraus für die Hilfe
Hallo
Weisst du wie man anstatt die Zeilen abwärts die Spalten seitwärts durchsuchen kann?
Ich habe das Problem das ich die Geräte und die Mitarbeiter in Gruppen eingeteilt habe. Die Gerätenamen sind Vertikal von 4B bis 20B angeordnet die Gruppe zu der die Geräte gehören sind von 4A bis 20A beschriftet. Die Mitarbeiter sind von 3C bis 3R angeordnet und die Gruppe der sie Angehören in 2C bis 2R. In der Zelle A1 kann ich dann via Dropdown liste die Gruppen anwählen.
Das die Geräte so gefiltert werden klappt. Wie kann ich jetzt das ganze noch auf die Mitarbeiter anwenden das die Spalten die in Zeile 2 nicht die richtige Gruppe haben ausgeblendet werden.
Gruss
Vielen dank für die hilfe