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)"
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