Jav, vielen Dank! Du hast mir sehr weitergeholfen.
Beiträge von markus_at
-
-
Super vielen Dank! Jetzt klappt es, allerdings gibt es noch ein Problem:
Die Summen werden nicht in der letzten Zeile eingetragen, sondern in Zeile 100. Das liegt daran, dass im while(zeile<100) steht. Kann ich vorab prüfen, wie viel Zeilen nicht leer sind?
Gruß Markus
-
Okay, ich denke das Problem liegt daran, dass außerhalb vom while nichts mehr ausgeführt wird. Woran kann das liegen?
Code
Alles anzeigenfunction meineBerechnung() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = ss.getSheetByName("Datenbank"); var sheet2 = ss.getSheetByName("Liste"); var zeile=4; var num=0; var spalte=3; var sums = Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); while(zeile < 100) { spalte=3; num=0; if(sheet2.getRange(zeile,1).getValue() != "") { while(spalte < 35) { if(sheet2.getRange(zeile, spalte).getValue() == "X" && sheet2.getRange(3, spalte).getValue() != "") { num++; sums[spalte]++; } spalte++; } sheet2.getRange(zeile,34).setValue( num ); zeile++; } } sheet2.getRange(9,1).setValue("TEST"); // Auch das wird nicht ausgeführt!! /* for (var spalte=2; spalte < 34; spalte++) { sheet2.getRange(zeile,spalte).setValue( sums[spalte] ); } */ }
-
Ich habe versucht das einzubauen, komme aber nicht weiter. Das Problem ist, dass die Zeilen von meiner Tabelle individuell sind. Es kann also jederzeit ein Name dazu kommen.
Mein Code sieht derzeit so aus:
Code
Alles anzeigenfunction meineBerechnung() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = ss.getSheetByName("Datenbank"); var sheet2 = ss.getSheetByName("Liste"); var zeile=4; var num=0; var spalte=3; var sums = Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); while(zeile < 100) { spalte=3; num=0; if(sheet2.getRange(zeile,1).getValue() != "") { while(spalte < 35) { if(sheet2.getRange(zeile, spalte).getValue() == "X" && sheet2.getRange(3, spalte).getValue() != "") { num++; sums[spalte]++; } spalte++; } sheet2.getRange(zeile,34).setValue( num ); zeile++; } } sheet2.getRange(zeile,spalte).setValue( sums ); }
Die Tabelle sieht derzeit so aus:
html-seminar.de/woltlab/attachment/1109/
Gruß Markus
-
Wie gehe ich vor, wenn ich jetzt noch die Anzahl der "X" am Mo, Di, Mi,... wissen möchte?
Name Mo Di Mi Do Fr Sa So Mustermann 1 X X X 3 Mustermann 2 X X 2 Mustermann 3 X X X X X 5 2 3 1 1 1 1 1 10 (Summe) Gruß Markus
-
Ich habe es so ähnlich mal versucht, aber dabei nur "num" zurückgesetzt.
Vielen Dank, jetzt funktioniert es! So einfach wäre es gewesen.
Gruß Markus
-
Hallo,
ich versuche eine Funktion zu erstellen, die mir automatisch meine Liste durchgeht und die "X" pro Zeile zählt.
Die Tabelle sieht in etwa so aus:
Name Mo Di Mi Do Fr Sa So Mustermann 1 X X X 3 Mustermann 2 X X 2 Mustermann 3 X X X X X 5 Das Problem ist: Bei meinem Script wird nur die erste Zeile gezählt und bei allen Zeilen der selbe Wert angezeigt. Das Ganze sieht fälschlicherweise dann so aus:
Name Mo Di Mi Do Fr Sa So Mustermann 1 X X X 3 Mustermann 2 X X 3 Mustermann 3 X X X X X 3 Code
Alles anzeigenvar zeile=1; var num=0; var spalte=1; while(zeile<100) { if(sheet2.getRange(zeile,1).getValue() != "") { while(spalte < 100) { if(sheet2.getRange(zeile, spalte).getValue() == "X") { num++; } spalte++; } sheet2.getRange(zeile,34).setValue( num ); zeile++; } }
Ich hoffe ihr könnt mir weiterhelfen.
Gruß Markus