Note: The other languages of the website are Google-translated. Back to English

Como encontrar e obter o valor da primeira célula visível após filtrar no Excel?

Em alguns casos, pode ser necessário obter o valor da primeira célula visível em uma lista filtrada. Como conseguir isso? Este artigo mostrará métodos para resolvê-lo.

Encontre e obtenha o valor da primeira célula visível após filtrar com a fórmula de matriz
Encontre e obtenha o valor da primeira célula visível após filtrar com VBA


Encontre e obtenha o valor da primeira célula visível após filtrar com a fórmula de matriz

Você pode aplicar a seguinte fórmula de matriz para obter o valor da primeira célula visível em uma lista filtrada. Faça o seguinte.

1. Selecione uma célula em branco para colocar o primeiro valor visível, insira a fórmula abaixo nela e pressione o botão Ctrl + mudança + Entrar chaves simultaneamente.

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

Anote os: Na fórmula, C2: C19 é a lista filtrada que você deseja que retorne o primeiro valor de célula visível, C2 é a primeira célula da lista. Você pode alterá-los conforme necessário.

Então você pode ver o valor da primeira célula visível na lista filtrada preenchida na célula selecionada, conforme a captura de tela acima mostrada.


Encontre e obtenha o valor da primeira célula visível após filtrar com VBA

Além de usar a fórmula de matriz acima para obter o valor da primeira célula visível em uma lista filtrada, você pode executar o script VBA abaixo para retornar rapidamente a primeira célula visível de uma lista filtrada. Faça o seguinte.

1. Selecione uma célula em branco, como E8, para colocar o primeiro valor de célula visível de uma lista filtrada.

2. Pressione outro + F11 simultaneamente para abrir o Microsoft Visual Basic para Aplicações janela.

3. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, copie e cole o código VBA abaixo na janela Módulo.

Código VBA: encontre e obtenha o valor da primeira célula visível após filtrar no Excel

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

Anote os: No código, Folha1 é o nome da folha que contém a lista filtrada. “C” é o nome da coluna da qual você deseja obter o primeiro valor visível. Você pode alterá-los conforme necessário.

3. aperte o F5 para executar o código, então a primeira célula visível da lista filtrada localizada na coluna C será preenchida na célula E8 imediatamente.


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (17)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Como encontrar e obter o valor de dez (10) primeiras células visíveis após a filtragem do subtotal no Excel?
Este comentário foi feito pelo moderador no site
Ola,


Como faço para saber o número da célula toda vez que realiza o filtro automático no vba via loop?
Por exemplo, ao próximo filtrou o valor 1, retorne as linhas 2, 3 e 4. No loop filtro o valor 2 e retorna as 19, 20, 22.
Como faço para que eu realize esse filtro eu exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha?
Obrigado.
Este comentário foi feito pelo moderador no site
Excelente Módulo em VBA, funcionou perfeitamente, eu aprecio isso! Muito obrigado por este post!!!!
Este comentário foi feito pelo moderador no site
Alguém pode explicar como essa fórmula realmente funciona?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Este comentário foi feito pelo moderador no site
Eu continuo recebendo um erro de tempo de execução '91' Variável de objeto ou Com variável de bloco não definida. Minha planilha é Sheet1 intitulada AllBrands. Esta é a minha fórmula:

Sub FirstVisibleCell()
With Worksheets("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Terminar com

End Sub

Qualquer ajuda será apreciada!
Este comentário foi feito pelo moderador no site
Olá Bub,
O código funciona bem no meu caso. Qual versão do Excel você está usando?
Este comentário foi feito pelo moderador no site
Infelizmente - nem a fórmula - que me dá um erro #VALUE nem o VBA funciona para mim, dando-me um erro de tempo de execução '1004'
Pena que tenho o Office 2019 e esperava que um desses recursos funcionasse ao filtrar células específicas... :-(
Este comentário foi feito pelo moderador no site
‌maravilhoso🌺 Obrigado um milhão🙏
Este comentário foi feito pelo moderador no site
Obrigado um milhão🙏🌺
Este comentário foi feito pelo moderador no site
Funciona. Muito obrigado...
Este comentário foi feito pelo moderador no site
Essa fórmula funciona, mas esteja ciente de que se você tiver células em branco, a fórmula pode funcionar mal e selecionar o primeiro valor em toda a tabela, não apenas nos resultados filtrados. A solução que encontrei foi substituir as células em branco por NULL ou um espaço.
Este comentário foi feito pelo moderador no site
Primeiro eu tinha espaços em branco... então todas as células foram preenchidas, mas ainda com a resposta #VALUE. Espero que esta fórmula funcione também em texto...! Obrigado pela dica mesmo assim ;-)
Este comentário foi feito pelo moderador no site
Então, para mim, a resposta acima simplesmente não funciona tão bem. Eu tenho uma pasta de trabalho com mais de 23 mil linhas e é algo que tenho trabalhado para otimizar ao longo dos anos. Minha solução veio a mim esta manhã em mais uma centelha de inspiração.
Supondo que você esteja usando uma TABLE para obter os dados que deseja, faça isso: Uma linha (chamei "Rownmbr") é dedicada a: =CELL([@[YOURFIRSTROW]])
Fora da tabela você faz uma fórmula em algum lugar:=INDIRETO(CONCATENAR("A";SUBTOTAL(105;Tabela1[Rownmbr]))))
Você simplesmente substitui o "A" pelo local de onde deseja obter os dados. Para mim, isso funciona muito bem, e não é uma fórmula pesada para usar que vai atrapalhar ainda mais o documento.
Este comentário foi feito pelo moderador no site
Esta solução funcionou perfeitamente para mim, já que eu estava usando uma tabela. As instruções foram difíceis de seguir, então espero que esta explicação seja um pouco mais clara.
Digamos que você tenha uma tabela do Excel chamada "Table_Name". Primeiro, crie uma nova coluna em sua tabela e nomeie-a como "RowNumber". 
Nessa nova coluna, insira a fórmula "=ROW([@RowNumber])" Isso preencherá a nova coluna com
Na célula onde você deseja exibir o primeiro valor visível, insira a fórmula "=INDIRECT("A"&SUBTOTAL(105,Table_Name[RowNumber]))" O "A" é a letra da coluna que contém o valor desejado para retornar.
A função SUBTOTAL(105,...) retorna o valor mínimo de todas as linhas visíveis em um determinado intervalo, que no caso acima retornará o número da linha da primeira linha visível.
A função INDIRETO retorna o valor da célula para um determinado endereço de célula. É por isso que você precisa que a primeira parte da fórmula contenha a letra da coluna que deseja exibir. A segunda parte da fórmula retornará o número da linha.


Este comentário foi feito pelo moderador no site
Você pode me ajudar a escrever esta fórmula na planilha do google com arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Este comentário foi feito pelo moderador no site
No código VBA a seguir, você pode explicar o que SpecialCells(xlCellTypeVisible)(1) significar? O que é (1) usado para depois SpecialCells(xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Este comentário foi feito pelo moderador no site
Obrigado!
Não há comentários postados aqui ainda

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL