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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top