Soma dados com base na cor da célula nas planilhas do Google
14
Eu já vi essa pergunta e, apesar de enfrentar o mesmo problema, a resposta a essa pergunta não é útil para o meu caso.
Tenho grandes planilhas que são alteradas com frequência. Portanto, de acordo com a solução aceita para essa pergunta, é difícil duplicar todas as colunas preenchidas e é complicado editar mais uma célula toda vez que desejo fazer uma alteração nas cores de fundo das células.
Não existe uma maneira de somar dados com base em uma condição referente à cor de fundo da célula nas Planilhas do Google?
Por favor, a partir disso, os rangeSpecificationparâmetros requerem aspas ( ") ao seu redor.
Por exemplo:
=sumWhereBackgroundColorIs("white", "A1:C4")
soma os valores de todas as células no intervalo A1: C4 que possuem um plano de fundo branco.
Observe que, se você não souber a cor de uma determinada célula, poderá usar a getBackgroundColorfunção fornecida para descobrir qual é a cor. Esta função é necessária, porque algumas cores são expressas como códigos RGB (por exemplo, em #00ff00vez de green).
A galeria de scripts foi substituída por complementos. Não consigo encontrar "soma por cor" nos complementos. Você precisa enviar seu script para complementos para que ele esteja disponível lá?
Jeff Lockhart
3
@ w0lf As novas planilhas do Google parecem não suportar mais a galeria de scripts. Ele redireciona com uma mensagem para os novos complementos. O editor de scripts ainda está disponível e eu usei seu código lá. Fiz um garfo e suporte adicional para pular células vazias (não numérico) no montante (de outro modo ocorrerá um erro se existem células vazias na gama): gist.github.com/jeffdgr8/1553faa6360ad04e9c17
Jeff Lockhart
2
É assim que eu consegui funcionar:
Abrir Tools>Script Editor
Cole o código abaixo, salve o script
Volte para sua planilha. Use com =countColoredCells(A1:Z5,C5)onde C5está a célula com a cor a ser contada.
Código:
/**
* @param {range} countRange Range to be evaluated
* @param {range} colorRef Cell with background color to be searched for in countRange
* @return {number}
* @customfunction
*/
function countColoredCells(countRange,colorRef) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formula = activeRange.getFormula();
var rangeA1Notation = formula.match(/\((.*)\,/).pop().trim();
var range = activeSheet.getRange(rangeA1Notation);
var bg = range.getBackgrounds();
var values = range.getValues();
var colorCellA1Notation = formula.match(/\,(.*)\)/).pop().trim();
var colorCell = activeSheet.getRange(colorCellA1Notation);
var color = colorCell.getBackground();
var count = 0;
for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};
getBackgroundColor()
está obsoleto. Talvez você possa atualizar o código?É assim que eu consegui funcionar:
Abrir
Tools
>Script Editor
Cole o código abaixo, salve o script
Volte para sua planilha. Use com
=countColoredCells(A1:Z5,C5)
ondeC5
está a célula com a cor a ser contada.Código:
Créditos de código (alterados): http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html
fonte
TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss