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.
Im letzten Beispiel zeige ich Euch auch wie Ihr statt Zahlen Text ausgeben könnt. Somit habt Ihr die Einträge "Eins" bis "Zehn".
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
Das könnte Dich auch interessieren
- Beispiel einer doppelten FOR Schleife (Google Tabellen Script)
- DO WHILE SCHLEIFE (Google Tabellen Script) Snippet
- FOR SCHLEIFE (Google Tabellen Script) Snippet
- Google Tabellen Script autorisieren
- IF / ELSE / ELSE IF Bedingungen (Google Script) Snippet
- Switch Case (Google Tabellen Script) Snippet
- Textinhalt vergleichen & markieren (Google Tabellen / Spreadsheets) Script
- WHILE SCHLEIFE (Google Tabellen Script) Snippet
- Zellen vergleichen & markieren / Array (Google Tabellen / Spreadsheets) Script
- Übersicht der SCHLEIFEN (Google Tabellen Script) Snippet