Ich habe einen Weg gefunden, dies mithilfe der von Google Spreadsheet bereitgestellten Skriptfunktion zu tun.
So geht's:
- Öffnen Sie Ihre Tabelle
- Gehen Sie im Menü zu Extras -> Skript-Editor ...; Dadurch wird ein neues Fenster geöffnet, in das Sie Code eingeben können
- Kopieren Sie den folgenden Code
- Fügen Sie den Code in das Skripteditorfenster ein und drücken Sie CTRL+ S, um ihn zu speichern
- Schließen Sie die Fenster des Skripteditors und kehren Sie zur Tabelle zurück
Code:
function getBackgroundColor(rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(rangeSpecification);
return cell.getBackground();
}
function sumWhereBackgroundColorIs(color, rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange(rangeSpecification);
var x = 0;
for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {
var cell = range.getCell(i, j);
if(cell.getBackground() == color)
x += parseFloat(cell.getValue());
}
}
return x;
}
function countCellsWithBackgroundColor(color, rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange(rangeSpecification);
var x = 0;
for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {
var cell = range.getCell(i, j);
if(cell.getBackground() == color)
x++;
}
}
return x;
}
Nachdem Sie die obigen Schritte ausgeführt haben, stehen Ihnen in der Tabelle drei weitere Funktionen zur Verfügung:
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
Bitte beachten Sie, dass <range specification>
und <cell specification>
in A1- Notation ausgedrückt sind und in Anführungszeichen gesetzt werden müssen .
Um beispielsweise die Anzahl aller Zellen im Bereich B2: F13 zu ermitteln, deren Hintergrundfarbe auf Weiß eingestellt ist , sollten Sie die folgende Formel eingeben:
=countCellsWithBackgroundColor("white", "B2:F13")
und um die Summe derselben Zellen zu berechnen, verwenden Sie die Formel:
=sumWhereBackgroundColorIs("white", "B2:F13")
Bei einigen Zellen ist der Hintergrund möglicherweise nicht auf eine Farbe wie "Weiß" oder "Grau" eingestellt, sondern auf eine RGB-Farbe wie "Weiß" #6fa8dc
. Sie können die Farbe nicht erraten. Wenn Sie also die Farbe für eine Zelle herausfinden möchten (z. B. B9
), sollten Sie diese Formel in eine Zelle eingeben:
=getBackgroundColor("B9")
und verwenden Sie anschließend diesen Wert als Parameter für die beiden obigen Funktionen.
Es scheint, dass, wenn die Hintergrundfarbe einer Zelle eine "Themenfarbe" ist, getBackground()
fälschlicherweise immer zurückgegeben wird #ffffff
. Ich habe keinen anderen Weg gefunden, als eine Farbe aus dem Standard-Set zu verwenden.
Beachten Sie auch hier die Anführungszeichen in allen obigen Beispielen. Ohne sie würden die Formeln nicht funktionieren.