Eu encontrei uma maneira de fazer isso, usando a funcionalidade de script fornecida pelo Google Spreadsheet.
Veja como fazê-lo:
- abra sua planilha
- no menu, vá em Ferramentas -> Editor de scripts ...; isso abrirá uma nova janela que permite inserir código
- copie o código abaixo
- cole o código na janela Script Editor e pressione CTRL+ Spara salvá-lo
- feche as janelas do editor de scripts e volte para a planilha
Código:
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;
}
Após seguir as etapas acima, você tem mais três funções disponíveis na planilha:
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
Observe que <range specification>
e <cell specification>
são expressos na notação A1 e devem estar entre aspas .
Por exemplo, para obter a contagem de todas as células no intervalo B2: F13 que têm a cor de fundo definida como branca , insira a seguinte fórmula:
=countCellsWithBackgroundColor("white", "B2:F13")
e para calcular a soma das mesmas células, use a fórmula:
=sumWhereBackgroundColorIs("white", "B2:F13")
Algumas células podem não ter o plano de fundo definido com uma cor como 'branco', 'cinza', mas com uma cor RGB #6fa8dc
. Você não pode adivinhar qual é a cor; portanto, se quiser descobrir a cor de uma célula (por exemplo B9
), insira esta fórmula em uma célula:
=getBackgroundColor("B9")
e depois use esse valor como parâmetro para as duas funções acima.
Parece que se a cor de plano de fundo de uma célula for uma "cor do tema", getBackground()
sempre retornará incorretamente #ffffff
. Eu não encontrei uma maneira de contornar isso além de usar uma cor do conjunto padrão.
Novamente, observe as aspas em todos os exemplos acima; sem eles, as fórmulas não funcionariam.