Dois dos recursos mais poderosos do Excel infelizmente não conseguem trabalhar bem juntos.
O problema reside no fato de que a função SOMA compreende um range de células e inclui em sua soma todo o intervalo. Por exemplo, você possui uma planilha que abrange da linha 2 a linha 50. Aplica uma fórmula SOMA, por exemplo, na coluna C, o que geraria o seguinte:
=SOMA(C2:C50)
Se aplicar um AutoFiltro nesta planilha, perceberá que sua fórmula continua considerando todas as linhas, mesmo as que não estão visíveis. Dependendo da situação, isso pode ser um problema. Não há funções tradicionais para resolvê-lo, porém, uma macro pode ajudar.
Copie e cole esta função personalizada em um módulo VBA.
Function Soma_Celulas_Visiveis(Cells_To_Sum As Object) Application.Volatile For Each cell In Cells_To_Sum If cell.Rows.Hidden = False Then If cell.Columns.Hidden = False Then Total = Total + cell.Value End If End If Next Soma_Celulas_Visiveis = Total End Function |
Agora, substitua a função citada acima pela seguinte:
=Soma_Celulas_Visiveis(C2:C50)
Ou adapte ao range da sua planilha. Agora, aplique o autofiltro de forma que algumas linhas fiquem escondidas. Note que a função considera apenas as células que estão visíveis agora.
Explicando
O segredo da função acima está na seguinte linha:
If cell.Rows.Hidden = False Then |
Essa linha verifica se a linha da célula corrente está oculta ou não (propriedade Hidden). Quando o filtro é aplicado, as linhas que não obedecem aos critérios do filtro ficam no estado de Hidden = True.
Espero que a dica seja de grande ajuda.
Bom proveito!
Download da Planilha de exemplo
http://www.tomasvasquez.com.br/downloads/Soma_Celulas_Visiveis.zip
Referências
http://support.microsoft.com/?scid=kb%3Ben-us%3B150363&x=10&y=14