Vergleichen der Werte von Zellen mit Google Tabellen Script
In diesem Tutorial zeige ich Euch ein ganz einfaches Script mit dem Ihr Werte aus Eurem Tabellenblatt vergleichen könnt. Die Funktionen versuche ich relativ klein zu halten damit AnfĂ€nger damit schnell zurecht kommen. Aus den ganzen kleinen Einzel – Tutorials lĂ€sst sich dann schnell etwas gröĂeres zusammen basteln.
Die eingetragenen Werte werden direkt nach der Eingabe automatisch ĂŒberprĂŒft ohne das dafĂŒr ein Button oder sonstiges gedrĂŒckt werden muss. HierfĂŒr ist die Funktion onEdit verantwortlich die aufgerufen wird sobald sich innerhalb von unserer Tabelle etwas Ă€ndert. Die Zellen werden ĂŒber das Script verglichen und wenn die Werte gleich sind dann wird dieses in der Zelle C1 eingetragen. Gleichzeitig wird diese dann mit grĂŒnem Hintergrund farblich markiert. Sollten die Werte nicht ĂŒbereinstimmen wird das mit roter Hintergrundfarbe deutlich gemacht.
Das passende Video findet Ihr weiter unten. Dort zeige ich Euch wie Ihr das Script Eurer Tabelle ĂŒber den Script – Editor hinzufĂŒgen könnt.
Das Script "Vergleichen der Werte von Zellen" zum kopieren:
// Diese Funktion wird automatisch bei Ănderung einer Zelle aufgerufen und ruft die Funktion werteVergleichen auf function onEdit(e){ werteVergleichen(); } // Dies ist die Haupt - Funktion die unsere Werte vergleicht und die Zellen entsprechend formatiert function werteVergleichen(){ // Hier wird die Zelle A1 ausgelesen und der Wert an die Variable wertA1 zugewiesen var wertA1=SpreadsheetApp.getActiveSheet().getRange("A1").getValue(); // Hier wird die Zelle B1 ausgelesen und der Wert an die Variable wertB1 zugewiesen var wertB1=SpreadsheetApp.getActiveSheet().getRange("B1").getValue(); // In der IF - Abfrage wird jetzt verglichen ob die beiden Zellen identisch sind. if(wertA1==wertB1){ // sind die Werte identisch wird dieser Bereich ausgefĂŒhrt SpreadsheetApp.getActiveSheet().getRange("C1").setValue("GLEICH"); SpreadsheetApp.getActiveSheet().getRange("C1").setBackgroundRGB(255, 255, 255); }else{ // sind die Werte nicht identisch dann wird dieser Bereich ausgefĂŒhrt SpreadsheetApp.getActiveSheet().getRange("C1").setValue("UNGLEICH"); SpreadsheetApp.getActiveSheet().getRange("C1").setBackgroundRGB(255, 0, 0); } }
Die Benutzung des Scripts erfolgt wie immer ohne GewÀhr
Euch gefÀllt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] đ
Man hĂ€tte dieses Script noch um einiges verkĂŒrzen können, indem man "SpreadsheetApp.getActiveSheet()" in eine eigene Variable packt. Wenn Ihr Fragen habt oder an einer bestimmten Stelle nicht weiter kommt, dann lasst es mich wissen. Dann werde ich das Tutorial entsprechend anpassen und mögliche Schwierigkeiten beim Nachprogrammieren hier veröffentlichen. Somit wird es anderen ebenfalls helfen können.
Ihr könnt dieses Video – Tutorial gerne hier schauen oder aber bei YouTube. Viel SpaĂ dabei.
6 Comments
Hallo Chris,
gerne sende ich Dir einen Kommentar zu. Deine Tutorials sind sehr informativ und beantworten genau meine Fragen.
Besonders interessieren mich die Google Anwendiungen.
Von den Scripten habe ich schon zwei ausprobiert und konnte Sie .leicht auf meine speziellen Fragestellungen umbauen. Hat alles funktioniert.
Danke fĂŒr Deine Hilfe!….
GrĂŒĂe aus Freiburg
Wilhelm Peters
Hallo Wilhelm, vielen Dank fĂŒr Dein positives Feedback đ
Da kommen sicher nach und nach noch mehr Tutorials, weil mir das gerade mit der Script-Programmierung in den Google-Tabellen selbst sehr viel SpaĂ macht. Schade das die Zeit nur immer so knapp ist, sonst wĂ€ren hier sicher schon sehr viel mehr Tutorials darĂŒber đ
Viele GrĂŒĂe
Chris
Hallo Chris,
meine Apps Script Kenntnisse sind noch sehr rudimentÀr.
Ich habe mir eine Aufgabenstellung gesetzt zu der ich kein "fast fertiges Script" finden konnte, daher werde ich es jetzt mal selber versuchen, vermute aber, dass ich an meine Grenzen stoĂen werde.
Vielleicht hast du ja ein paar Tipps.
Folgendes wĂŒrde ich gerne ĂŒber Appsscript laufen lassen (hier ein analoges aber leichter zu verstehendes Beispiel):
Es gibt zwei TabellblĂ€tter die als Datensatz dienen: 1. "Saison_2018" und 2. "Historie" und ein drittes Tabellenblatt "Ăbersicht" in die meine Funktion Daten aus beiden DatensĂ€tzen zusammenfĂŒhren soll.
In Tabellenblatt 1 ist die Tabelle der aktuellen FuĂball Bundesliga.
in Tabellenblatt 2 ein Auflistung der Bundesliga Platzierungen aller Mannschaften zu Saisonende der Historie (chronologisch gelistet)
Meine Funktion soll letztlich die Daten aus Tabellenblatt 1 einfach in Tabellenblatt 3 kopieren, soweit bin ich auch schon.
Nun soll die Funktion aber auch die Mannschaftsnamen von Tabelle 1 mit den Namen in Tabelle 2 vergleichen und die Jahre in denen die jeweilige Mannschaft Meister wurde in EINER Zelle untereinander zusammengfĂŒhrt (join()?) neben die jeweilige Mannschaft in Tabellenblatt 3 einfĂŒgen.
Ich werde mich mal weiter dransetzen, aber falls du ein paar Anregungen hast, dann immer her damit.
VG, Max
Hi Max, ich bin mir nicht sicher ob Du da wirklich die Programmierung benötigst. Du kannst unglaublich viel mit der Funktion SVerweis, Filter und QUERY machen. Wobei QUERY sehr flexibel ist.
Query:
https://toptorials.com/funktion-query-wie-sql-google-tabellen/
Filter:
https://toptorials.com/funktion-filter-google-tabellen-spreadsheets/
SVerweis:
https://toptorials.com/sverweis-google-tabellen/
Was ich noch nicht ausprobiert habe aber was Du selbst mal testen könntest wÀre Filter oder Query in einer Verketten Funktion einzubauen damit die Daten dann innerhalb einer Zelle stehen. Ich glaube das war ja eher Dein Ziel.
Viele GrĂŒĂe
Chris
Hi Chris,
mit query habe ich es schon gemacht, das lĂ€uft schon auch ist aber bei den Daten die ich verarbeiten möchte recht Rechenintensiv und verlangsamt das sheet sehr stark, weshalb ich das ganze ĂŒber ein script realisieren möchte.
Also ĂŒber ein script möchte ich letztlich Daten aus derzeit vier verschienden Tabellen/Exporten zusammenfĂŒhren und dann in einem weiteren Tabellenblatt mittels mehrerer querys mit verschiedenen Parametern die jeweils gewĂŒnschten Daten darstellen lassen.
Da gibt es mehrere Möglichkeiten. Das ist eine Kombination aus mehreren Tutorials.
https://toptorials.com/zelle-anderes-dokument-kopieren-google-tabellen-script/
https://toptorials.com/moveto-kopieren-verschieben-google-tabellen-script/
https://toptorials.com/zelle-kopieren-google-tabellen-script/https://toptorials.com/aktive-zeile-in-andere-tabelle-kopieren-google-tabellen-script/
Du kannst anstatt wie in den Beispielen die aktive Tabelle zu benutzen auch ein Tabellendokument ĂŒber die ID nutzen. Die Ergebnisse kannst Du dann ja immer noch ĂŒber Querys weiter filtern.