Como é que uma soma apenas as linhas em excel não filtrados?
-
09-09-2019 - |
Pergunta
I utilizar a fórmula SUM(B1..B20)
para somar uma coluna, mas quando filtrar os dados por uma coluna adjacente, a soma não é actualizado para reflectir apenas as linhas não filtrados. Como se faz isso?
Solução
Você precisa usar o SUBTOTAL strong> função SUBTOTAL ignora função linhas que foram excluídos por um filtro.
A fórmula ficaria assim:
=SUBTOTAL(9,B1:B20)
O número de função 9 , diz-lhe para usar o função SUM no intervalo de dados B1: B20 .
Se você é ' filtragem ' por linhas esconderijos, o número da função deve ser atualizado para 109 .
=SUBTOTAL(109,B1:B20)
O número de função 109 é para o função SUM bem, mas linhas ocultas são ignorados.
Outras dicas
Se você não estiver usando um filtro automático (ou seja, você tem linhas ocultas manualmente), você vai precisar usar o AGGREGATE
função em vez de SUBTOTAL
.
Quando você usa filtro automático para resultados de busca Excel nem sequer se preocuparam em escondê-los:. Ele só define a altura da linha para zero (até a 2003, pelo menos, não tenho certeza sobre 2007)
Assim, a seguinte função personalizada deve dar-lhe uma iniciação para fazer o que quiser (testado com números inteiros, não tenho jogado com qualquer outra coisa):
Function SumVis(r As Range)
Dim cell As Excel.Range
Dim total As Variant
For Each cell In r.Cells
If cell.Height <> 0 Then
total = total + cell.Value
End If
Next
SumVis = total
End Function
Editar:
Você vai precisar para criar um módulo na pasta de trabalho para colocar a função, então você pode simplesmente chamá-lo em sua folha como qualquer outra função (= SumVis (A1: A14)). Se você precisa configurar o módulo de ajuda, me avise.