Ich bin neu im Google Apps-Skript und möchte eine Funktion für eine Tabelle erstellen, die Zellwerte summiert, wenn die Zellen bestimmte Kriterien erfüllen, z. B. die Hintergrundfarbe. Darüber hinaus möchte ich den Bereich als Array übergeben und aus folgendem Grund keine A1-Notation verwenden .
Ich fand eine Funktion , die A1 - Notation verwendet hier . Das Problem ist, wenn ich es in einer bestimmten Zelle habe
=sumWhereBackgroundColorIs("white", "A1:A10")
und ich kopiere den Wert in die rechte benachbarte Zelle, das Ergebnis wird wieder sein
= sumWhereBackgroundColorIs ("weiß", "A1: A10" )
während ich gerne hätte
= sumWhereBackgroundColorIs ("weiß", "B1: B10" )
Ansonsten muss ich das Eingabeargument immer manuell ändern und ich möchte dies vermeiden, da ich diese Funktion ausgiebig nutzen muss.
Daher habe ich versucht, einen Bereich als Array von Werten mit zu übergeben
=sumIfBgColor(#ffffff, A1:A10)
function sumIfBgColor(color, range){
var x = 0;
for(var i = 0; i < range.length; i++){
for(var j = 0; j < range[i].length; j++){
var cell = getCell();
if(cell.getBackgroundColor() == color)
x += parseFloat(range[i][j]);
}
}
return x;
}
aber ich weiß nicht, wie ich die Zelle (dh das Objekt vom Typ Range) von dem bekommen soll, was ich habe.
quelle
A1 notation
.Antworten:
Zu @ Jacobs Behauptung der Unmöglichkeit widerlege ich es so ... (aber danke für die verbesserte Geschwindigkeit)
mit:
Mit den folgenden Funktionen können Sie tun, was Sie wollen.
quelle
Referenz: http://igoogledrive.blogspot.com/2015/11/google-spreadsheet-sum-of-colored-cells.html
Anstatt Parameter als Zeichenfolge an die benutzerdefinierte Funktion zu übergeben, verwendet das folgende Skript die Eingabe als Bereich:
Schauen Sie sich den folgenden Screenshot an:
quelle
Das folgende kleine Skript reicht aus.
Code
Erklärt
Zunächst wird die aktive Tabelle ermittelt. Dann werden sowohl die Werte als auch die Farben basierend auf dem Bereich abgerufen. Die Werte werden verwendet, um die Farben und letztendlich die Summierung zu durchlaufen.
Verwendungszweck
Beispiel
Ich habe eine Beispieldatei für Sie erstellt: Summe basierend auf Hintergrund
quelle