none
Contar valores no Excel, mas desconsiderando linhas ocultas pelo filtro RRS feed

  • Pergunta

  • Boa noite!

    Procurei em vários locais, fiz várias tentativas, mas não consegui solucionar meu problema.

    Tenho uma planilha onde os valores de uma coluna são 1, 2, 3 e 4 e utilizo a função Cont.Se para determinar a quantidade de cada valor anteriormente mencionado. Porém, necessito que esta função seja executada quando aplico o filtro, mas que ignore as células que foram ocultas pelo filtro, como se fosse uma combinação do Cont.Se e do SubTotal juntos.

    Alguém poderia contribuir com alguma função simples ou com um código VBA?

    Muito grato aos que puderem contribuir comigo e aos que aprenderão com o mesmo problema que o meu.

    quinta-feira, 20 de fevereiro de 2014 00:09

Respostas

  • Fica muito mais fácil quando você envia a planilha em anexo, se possível faça o upload no sendspace.com e mande o link aqui.

    Mas o que eu tentei dizer é o seguinte, a função subtotal conta os valores que estão visíveis em uma range, então eu precisava saber o que o seu cont.se faz (na verdade saber qual a condição SE para ele contar) aí iria implementar o SE com o subtotal e retirar o seu cont.se, entendeu?

    mande sua planilha fica extremamente mais fácil de fazer com o modelo em mãos.

    Qualquer coisa me envie no email bkunace@gmail.com

    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:40
    sábado, 22 de fevereiro de 2014 12:37
  • Boa noite!

    Enviei  no seu e-mail, como sugerido.

    Havia tentado colar uma imagem do arquivo, porém minha conta ainda não foi validada para tanto.

    Muito grato mesmo!

    Boa noite. Havia enviado o anexo conforme solicitado pelo Bruno e ele fez uma função que funcionou perfeitamente.

    =SOMARPRODUTO(SUBTOTAL(3;DESLOC(W$9:W$300;LIN(W$9:W$300)-LIN(W$9);0;1));--(W$9:W$300=4))

    Muito grato Bruno, ajudou muito!

    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:39
    • Não Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:39
    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:40
    terça-feira, 25 de fevereiro de 2014 22:39

Todas as Respostas

  • Eu sei fazer assim:

    ActiveSheet.Cells(1, 4) = Range("A2:A21").Cells.SpecialCells(xlCellTypeVisible).Count


    Onde A1:A21 é o valor total onde estão os ítens para serem contados, troque por sua range.

    e o ActiveSheet.Cells(1,4) é onde vai aparecer o valor no caso linha1 e coluna 4 ou D1.

    Aí tem que ver sua planilha para saber como "disparar" este código.

    --------------------

    Usando a fórmula SUBTOTAL do próprio excel é só fazer assim:   =SUBTOTAL(3;A:A)  ONDE A:A é a range onde irá contar os dados. só trocar.

    Se tiver alguma linha preenchida antes dos valores para contar, provavelmente terá, pode se fazer de duas formas, vamos dizer que vai começar os dados do A2, visto que A1 é o nome da coluna.

    =SUBTOTAL(3;A:A)-1   (utiliza menos recursos da máquina)

    ou

    =SUBTOTAL(3;A2:A100000)  (utiliza MAIS recursos da máquina)

    Espero ter ajudado.

    • Editado Bruno Henry quinta-feira, 20 de fevereiro de 2014 01:16
    quinta-feira, 20 de fevereiro de 2014 00:50
  • Bom dia!

    Muito grato pelo auxílio, porém, talvez ou não funcionou ou eu não tenha entendido como proceder, pois quando coloco o comando no VB não surti nenhum efeito.

    Pode ser que eu tenha solicitado de forma errada, faltando informações. A planilha funcionará da seguinte forma:

    Onde tenho o resumo das atividades estou utilizando o cont.se com os critérios definidos e tenho filtro aplicado por área, não sendo o mesmo local da função cont.se, onde cada valor representa um status. O que necessito é, quando aplicar o filtro nas áreas o totalizador (cont.se) do resumo das atividades altere seus valores, de acordo com o que foi selecionado no filtro.

    Muito grato se puder ou não ajudar.

    sábado, 22 de fevereiro de 2014 11:56
  • Fica muito mais fácil quando você envia a planilha em anexo, se possível faça o upload no sendspace.com e mande o link aqui.

    Mas o que eu tentei dizer é o seguinte, a função subtotal conta os valores que estão visíveis em uma range, então eu precisava saber o que o seu cont.se faz (na verdade saber qual a condição SE para ele contar) aí iria implementar o SE com o subtotal e retirar o seu cont.se, entendeu?

    mande sua planilha fica extremamente mais fácil de fazer com o modelo em mãos.

    Qualquer coisa me envie no email bkunace@gmail.com

    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:40
    sábado, 22 de fevereiro de 2014 12:37
  • Boa noite!

    Enviei  no seu e-mail, como sugerido.

    Havia tentado colar uma imagem do arquivo, porém minha conta ainda não foi validada para tanto.

    Muito grato mesmo!

    sábado, 22 de fevereiro de 2014 23:39
  • Boa noite!

    Enviei  no seu e-mail, como sugerido.

    Havia tentado colar uma imagem do arquivo, porém minha conta ainda não foi validada para tanto.

    Muito grato mesmo!

    Boa noite. Havia enviado o anexo conforme solicitado pelo Bruno e ele fez uma função que funcionou perfeitamente.

    =SOMARPRODUTO(SUBTOTAL(3;DESLOC(W$9:W$300;LIN(W$9:W$300)-LIN(W$9);0;1));--(W$9:W$300=4))

    Muito grato Bruno, ajudou muito!

    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:39
    • Não Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:39
    • Marcado como Resposta MarcoRamiro terça-feira, 25 de fevereiro de 2014 22:40
    terça-feira, 25 de fevereiro de 2014 22:39
  • Boa noite!

    Enviei  no seu e-mail, como sugerido.

    Havia tentado colar uma imagem do arquivo, porém minha conta ainda não foi validada para tanto.

    Muito grato mesmo!

    Boa noite. Havia enviado o anexo conforme solicitado pelo Bruno e ele fez uma função que funcionou perfeitamente.

    =SOMARPRODUTO(SUBTOTAL(3;DESLOC(W$9:W$300;LIN(W$9:W$300)-LIN(W$9);0;1));--(W$9:W$300=4))

    Muito grato Bruno, ajudou muito!

    Oi pessoal, 

    Estou com um caso bem similar... Preciso fazer a mesma coisa...

    poderia me encaminha a planilha para eu poder entender a função que o amigo Bruno fez? 

    Muito obrigado pessoal

    quinta-feira, 17 de setembro de 2015 00:31
  • Eu preciso de uma fórmula semelhante, mas meus valores estão em texto, ex: contar quantas vezes o valor "Prescrição" aparece no intervalo J:J ignorando as células ocultas. Alguém poderia me ajudar?
    sexta-feira, 24 de fevereiro de 2017 13:12
  • Tambem precisei de uma forma de contar linhas após o filtro. 

    Usei a funcao SUBTOTAL que é assim: =SUBTOTAL(REF, FAIXA DE CELULAS). Quando se quer CONTAR após um filtro usa-se a referencia 102 para numeros. Ficou assim: =SUBTOTAL(102,A2:A4). Se for contar sem filtro fica: =SUBTOTAL(2,A2:A4). Se voce quiser SOMAR, a referencia é 9 (sem filtro) ou 109 (com filtro).

    Para contar celulas com texto mude a referencia para 103.

    O help do Excel 2013 na funcao SUBTOTAL tem a tabela completa.

    segunda-feira, 27 de março de 2017 22:48
  • Show de bola essa resposta, era isso que estava procurando... Parabéns Bruno Henry
    quinta-feira, 10 de agosto de 2017 14:39