Ho trovato un modo per farlo, utilizzando la funzionalità di scripting fornita da Google Spreadsheet.
Ecco come farlo:
- apri il tuo foglio di calcolo
- nel menu, vai su Strumenti -> Script Editor ...; questo aprirà una nuova finestra che ti permetterà di inserire il codice
- copia il codice qui sotto
- incolla il codice nella finestra Editor di script e premi CTRL+ Sper salvarlo
- chiudere le finestre dell'editor degli script e tornare al foglio di calcolo
Codice:
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;
}
Dopo aver seguito i passaggi precedenti, nel foglio di calcolo sono disponibili altre tre funzioni:
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
Si prega di notare che <range specification>
e <cell specification>
sono espressi in A1 notazione, e deve essere racchiuso tra virgolette .
Ad esempio, per ottenere il conteggio di tutte le celle nell'intervallo B2: F13 con il colore di sfondo impostato su bianco , è necessario immettere la seguente formula:
=countCellsWithBackgroundColor("white", "B2:F13")
e per calcolare la somma delle stesse celle, usa la formula:
=sumWhereBackgroundColorIs("white", "B2:F13")
Alcune celle potrebbero non avere lo sfondo impostato su un colore come 'bianco', 'grigio', ma un colore RGB simile #6fa8dc
. Non puoi indovinare quale sia il colore, quindi se vuoi scoprire il colore di una cella (ad esempio, B9
), dovresti inserire questa formula in una cella:
=getBackgroundColor("B9")
e successivamente utilizzare questo valore come parametro per le due funzioni sopra.
Sembra che se il colore di sfondo di una cella è un "colore tema", getBackground()
restituisce sempre erroneamente #ffffff
. Non ho trovato un modo per aggirare questo se non quello di usare un colore dal set standard.
Ancora una volta, notare le virgolette in tutti gli esempi sopra; senza di essi le formule non funzionerebbero.