Soma por cor no Excel

Somar por cor no excel é algo que não pode ser feito por formula simples e directa. Para que isto seja possível utiliza-se uma função em VBA para determinar a área a somar e a cor a ter como base.

A imagem de exemplo que mostro aqui não tem qualquer sentido prático, serve meramente para exemplificar como utilizar a função. Na coluna B tem a lista de valores com várias cores e na coluna D tem celulas com a cor que se quer somar.

A formula é de simples construção, na imagem na barra de formula vê a formula da celula D5 que é “=somacor( $B$3:$B$16; D5)”, o funcionamento desta formula é: chama a função “somarcor” que vai somar todas as celulas da zona “$B$3:$B$16” que contenham valores e que tenham como cor de fundo a mesma que “D5”.

Soma Por Cor No Excel

Na linha 17 temos uma soma de controle só para confirmar se todos os valores estão a ser somados.

A função em VBA

A função deve ser colocada num modulo, para isso pressione Alt+F11, e no editor de VBA copie a função abaixo para um novo modulo ou para algum já existente.

Function somacor(zona As Range, celula As Range)
    Dim c As Range, soma As Long, cor As Long
    Application.Volatile
    ' cor base
    cor = celula.Interior.Color
    'percorrer zona e somar valores desde que a cor seja igual à cor base
    For Each c In zona
         If c.Interior.Color = cor And c.Text <> 0 Then soma = soma + Val(c.Value)
    Next c
    'retorna a soma
    somacor = soma
End Function

Deixe um comentário