Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
x
or
x
Inscreva-se  \/ 
x

or

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)))

Importante: 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

Importante: 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 ...
  • Super Formula Bar (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-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. 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!
officetab bottom
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    nh · 1 months ago
    In the following VBA code, can you please explain what does SpecialCells(xlCellTypeVisible)(1) mean? What is (1) used for after SpecialCells(xlCellTypeVisible)?

    ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
  • To post as a guest, your comment is unpublished.
    andrew · 2 months ago
    Can you help me write this formula in google sheet with arrayformula ()

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

  • To post as a guest, your comment is unpublished.
    Chricke · 1 years ago
    So for me the answer above simply does't work that well. I have a workbook with over 23k rows and is something I've been working to optimize over the years. My solution came to me this morning in yet another spark of inspiration.

    Assuming that you are using a TABLE to get the data you want do this:
    One row (I named it "Rownmbr") is dedicated to:
    =CELL([@[YOURFIRSTROW]])

    Outside the table you make a formula somewhere:
    =INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))

    You simply replace the "A" with wherever you want to get the data from. For me this works great, and it's not a heavy formula to use that will bog down the document further.
  • To post as a guest, your comment is unpublished.
    Kristine · 1 years ago
    This formula works, but be aware that if you have blank cells, the formula can malfunction and select the first value in the entire table, not just in the filtered results. The workaround I found was to replace blank cells with NULL or a space.
    • To post as a guest, your comment is unpublished.
      Spock1956 · 1 years ago
      First I had blanks.... then all cells were filled but still having the #VALUE response. Hopefully this formula works on text as well...! Thanks for the advise anyway ;-)
  • To post as a guest, your comment is unpublished.
    Hcs · 1 years ago
    It works. Thanks so much...

  • To post as a guest, your comment is unpublished.
    Javane · 1 years ago
    Thanks a million🙏🌺
  • To post as a guest, your comment is unpublished.
    Javane · 1 years ago
    ‌wonderful🌺 Thanks a million🙏
  • To post as a guest, your comment is unpublished.
    Bub · 1 years ago
    I keep getting a Run-time error '91' Object variable or With block variable not set. My worksheet is Sheet1 titled AllBrands. This is my formula :

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

    Any help will be appreciated!
    • To post as a guest, your comment is unpublished.
      Spock1956 · 1 years ago
      Unfortunately - neither the formula - that gives me a #VALUE error nor the VBA works for me giving me a run-time error '1004'
      Too bad as I have Office 2019 and I was expecting one of these features to work when filtering specific cells... :-(
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi Bub,
      The code works well in my case. Which Excel version are you using?
  • To post as a guest, your comment is unpublished.
    Eli · 1 years ago
    Can any one explain that how this formula actually works?

    =INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
  • To post as a guest, your comment is unpublished.
    Anderson · 2 years ago
    Excellent Module in VBA, worked perfctly I apreciate this!Thanks a lot for this post!!!!
  • To post as a guest, your comment is unpublished.
    tulio_rangel · 2 years ago
    Olá,


    Como faço para saber o número da célula toda vez que realizo o filtro automático no vba via loop?
    Por exemplo, ao filtrar o valor 1, retornou as linhas 2, 3 e 4. No próximo loop filtro o valor 2 e retorna as linhas 19, 20, 22.
    Como faço para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha?
    Obrigado.
  • To post as a guest, your comment is unpublished.
    acarricarte · 4 years ago
    How to Find And Get The Value Of ten (10) First Visible Cells After subtotal Filtering In Excel?