FOR EACH SCHLEIFE in Google Tabellen Script
In diesem Tutorial und zugleich Snippet zeige ich Euch wie Ihr eine FOR EACH Schleife erstellen könnt. Ich zeige hier auch gleich 3 Varianten. Mit der FOR EACH Schleife könnt Ihr einen Codebereich mehrfach durchlaufen und zwar so oft wie es EintrÀge innerhalb des Arrays gibt. Wer jetzt nicht weià was ein Array ist wird weiter unten mehr erfahren. Bei jedem Durchlauf können sich die verschiedenen Variablen und Aufrufe (z.B. durch IF Abfragen) auch Àndern wenn man das möchte. Das bedeutet dass der Code nicht nur einfach wiederholt werden muss, sondern auch gezielt verÀndert werden kann.
Wer jetzt das erste mal ein Google Tabellen Script programmiert sollte sich zuerst dieses Tutorial hier anschauen: Mein erstes Google Tabellen Script programmieren
Es gibt natĂŒrlich noch weitere Schleifen die Ihr benutzen könnt: Ăbersicht der SCHLEIFEN (Google Tabellen Script) Snippet
Beschreibung:
In diesen Beispielen zeige ich Euch mehrere Varianten einer FOR EACH Schleife die Ihr in Google Tabellen erstellen könnt. Hier werden durch diese Schleife in einer Spalte der Tabelle die Zahlen 1 bis 10 ausgegeben.

Ausgabe 1 bis 10 ĂŒber ein Script
Im letzten Beispiel zeige ich Euch auch wie Ihr statt Zahlen Text ausgeben könnt. Somit habt Ihr die EintrÀge "Eins" bis "Zehn".

Google Tabellen 1 bis 10 in Text ĂŒber ein Script
Zugriff auf das aktive Tabellenblatt
In allen Beispielen greifen wir zuerst auf das aktive Tabellenblatt zu und weisen es der Variablen ss zu:
var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
ZusÀtzlich benutze ich in allen Beispielen auch getRange
ss.getRange(ZEILE, SPALTE).setValue("DEIN TEXT");
… greift auf das Tabellenblatt zu welches wir ja jetzt in der Variablen ss hinterlegt haben.
getRange gibt den Bereich an welchen wir jetzt beschreiben wollen. Der Erste Parameter von getRange gibt die Zeilennummer und der zweite Parameter die Spaltennummer an. Deshalb habe ich als zweiten Parameter eine 1 gewÀhlt um die EintrÀge in Spalte 1 einzutragen.
Zuerst benötigen wir ein Array
Ein Array ist eine Art Ansammlung von Daten die in einer einzigen Variable gespeichert werden können. Hier könnt Ihr Zahlen aber auch Text benutzen.
In den nachfolgenden Beispielen benutze ich zum Beispiel die folgenden Arrays:
var numbers = [1,2,3,4,5,6,7,8,9,10]; var numbersAsText = ["Eins", "Zwei", "Drei", "Vier", "FĂŒnf", "Sechs", "Sieben", "Acht", "Neun", "Zehn"];
Einzelne EintrÀge eines Arrays auslesen
Das Auslesen der einzelnen EintrĂ€ge eines Arrays geht folgendermaĂen. Ihr seht ja dass ich oben numbers und numbersAsText als Arrays benutze. Beide EintrĂ€ge haben insgesamt 10 EintrĂ€ge (Ihr könnt natĂŒrlich weit aus mehr benutzen). Einmal als Zahl und einmal als Text ( natĂŒrlich auch Zahlen aber als Text geschrieben đ ). Die Nummerierung ist aber nicht so wie bei uns ĂŒblich von 1 bis 10 sondern beginnt bereits bei 0 und endet dafĂŒr schon bei 9.
Folgende Ausgabe erhaltet Ihr wenn Ihr ĂŒber setValue die Werte in die Tabelle schreiben wĂŒrdet:
setValue(numbers)
1
setValue(numbersAsText)
Eins
setValue(numbers[0])
1
setvalue(numbers[9])
10
setValue(numbersAsText[0])
Eins
setvalue(numbersAsText[9])
Zehn
Ihr seht dass man mit Hilfe der eckigen Klammern und dem entsprechenden Index (beginnend bei 0) die einzelnen Werte auslesen kann.
Benutzt man keine Eckigen Klammern und schreibt nur das Array bekommt man nur den ersten Eintrag des Arrays heraus wie Ihr oben bei den ersten beiden Zeilen gesehen habt.
FOR EACH Schleife
Der Aufbau einer FOR EACH Schleife ist sehr einfach und sieht in etwa so aus.
for each (var eineVariableAusDemArray in meinArray) { // Dein Code }
Mit "for each" legen wir fest dass jetzt eine FOR EACH Schleife kommt und in den Klammern geben wir nun folgendes an:
meinArray
Also die Variable die meine ganzen Werte enthÀlt wie oben gerade beschrieben (numbers oder numbersAsText)
eineVariableAusDemArray
Hier ist das Coole das wir die eckigen Klammern wie oben nicht benötigen. Die For Each Schleife durchlÀuft das Array einfach von 0 beginnend und weist es immer wieder der Variablen eineVariableAusDemArray zu.
Wenn wir also jetzt zum Beispiel die folgende Schleife benutzen …
for each (var number in numbers) { ss.getRange(number, 1).setValue(number); }
… wird das Array numbers durchlaufen. Da die FOR EACH Funktion weiĂ wie groĂ das Array ist, wird es genau 10 mal durchlaufen. Beim ersten Durchlauf wird dann numbers[0] der Variablen number zugewiesen. Beim nĂ€chsten Durchlauf wird numbers[1] der Variablen number zugewiesen und so weiter. Das ganze geht dann bis numbers[9]. AnschlieĂend wird die Schleife verlassen weil alle Werte des Arrays ausgelesen wurden.
Die unterschiedlichen Beispiel Scripte
Nachfolgend die relativ einfache Variante der FOR EACH Schleife:
function forEachSchleife(){ var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var numbers = [1,2,3,4,5,6,7,8,9,10]; for each (var number in numbers) { ss.getRange(number, 1).setValue(number); } }
Hier wird das Array wie oben schon beschrieben einfach durchlaufen und da die Zahlen von 1 bis 10 vorhanden sind können wir diese auch gleich dazu benutzen um sie in die richtigen Zeilen der Tabelle zu schreiben.
Die nĂ€chste Variante enthĂ€lt jetzt das Array in Form von Text. Deshalb ist es hier jetzt erforderlich eine Art ZĂ€hler zu benutzen damit wir die EintrĂ€ge in die verschiedenen Zeilen vornehmen können. DafĂŒr verwende ich rownumberstart=1. Diese Zahl beginnt bei eins und wird nach jedem Durchlauf durch rownumberstart++ um eins erhöht. NatĂŒrlich lĂ€sst sich so etwas noch ganz anders programmieren aber ich denke zum VerstĂ€ndnis ist es OK so.
function forEachSchleife2(){ var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var numbersAsText = ["Eins", "Zwei", "Drei", "Vier", "FĂŒnf", "Sechs", "Sieben", "Acht", "Neun", "Zehn"]; var rownumberstart=1; // Ab welcher Zeilennummer die Ausgabe beginnen soll for each (var numberAsText in numbersAsText) { ss.getRange(rownumberstart, 1).setValue(numberAsText); rownumberstart++; } }
Als letztes jetzt mal einfach 2 Arrays. Einmal fĂŒr die Zahlen und dann noch fĂŒr die Zahlen in Form von Text. Das Array numbers verwende ich um die EintrĂ€ge in die jeweiligen Zeilen zu schreiben, also von 1 bis 10 und zusĂ€tzlich um das Array numbersAsText direkt ĂŒber den Index auszulesen. Hier muss ich allerdings 1 abziehen, denn Ihr wisst ja jetzt das der Index von 0 beginnt.
function forEachSchleife3(){ var ss= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var numbers = [1,2,3,4,5,6,7,8,9,10]; var numbersAsText = ["Eins", "Zwei", "Drei", "Vier", "FĂŒnf", "Sechs", "Sieben", "Acht", "Neun", "Zehn"]; for each (var number in numbers) { ss.getRange(number, 1).setValue(numbersAsText[number-1]); } }
Vorzeitiger Abbruch der Schleife
Innerhalb des Scriptes könnt Ihr steuern dass es zu einem Abbruch der Schleife kommen soll. DafĂŒr dient "break". Das wĂŒrde dann in etwa so aussehen:
if(number>=5)break;
Hier wird die AusfĂŒhrung der Schleife abgebrochen wenn der Wert fĂŒr i gröĂer oder gleich 5 ist.
Funktionen ausfĂŒhren
Ihr könnt den Code auf verschiedene Weisen ausfĂŒhren. Ăber den Scripteditor oder ĂŒber den Aufruf der jeweiligen Funktionen.
Beispiel 1:Â forEachSchleife
Beispiel 2:Â forEachSchleife2
Beispiel 3:Â forEachSchleife3
Dieses Scripte könnt Ihr ĂŒber Buttons (Zeichnungen oder Bilder) mit diesem Namen zuweisen.
Vorab ein Video welches Euch zeigt wie man ein einfaches Script programmieren kann und wie Ihr den Scripteditor aufrufen könnt:
Mein erstes Script programmieren mit GOOGLE Tabellen
Achtung:
Benutzt zum Ăben eine separate Tabelle fĂŒr Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
Die Benutzung der Scripte erfolgt natĂŒrlich wie immer auf eigene Gefahr.
Euch gefÀllt das Script und Ihr wollt Euch gerne bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] đ
Dies ist Teil der Serie: "Google Tabellen Script Programmierung"
Dieses Tutorial ist Teil einer Serie die als eine Art Datenbank fĂŒr kleinere Snippets dient. Damit habt Ihr die Möglichkeit fĂŒr Eure Projekte einen Teil des Codes hier direkt zu kopieren und wie in Modulbauweise das ganze anzuwenden.
Die Liste aller Snippets findet Ihr hier:
Google Tabellen Script Programmierung