Compartilhar via

PROCV CÉLULAS VISÍVEIS

Anônima
2016-04-13T13:38:58+00:00

Prezados,

Preciso de ajuda no sentido de identificar como posso utilizar a fórmula PROCV de forma que ela me devolva apenas resultados oriundos de células visíveis.

Grato pela atenção.

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

  1. Anônima
    2016-04-13T14:23:33+00:00

    Utilize a UDF abaixo:

    Function PROCV_VISÍVEIS(pSearchValue As Variant, _

                            pLookupTable As Range, _

                            pReturnIndex As Long) As Variant

        Dim i As Long

        Dim iCell As Range

        Dim Result As Variant

        Dim ReturnRange As Range

        Set ReturnRange = pLookupTable.Columns(pReturnIndex).Cells

        Result = CVErr(xlErrNA)

        For i = 1 To pLookupTable.Columns(1).Cells.Count

            Set iCell = pLookupTable.Columns(1).Cells(i)

            If iCell.Value2 <> pSearchValue Then GoTo Continue

            If iCell.EntireRow.Hidden Then GoTo Continue

            Result = ReturnRange(i).Value2

    Continue:

        Next i

        PROCV_VISÍVEIS = Result

    End Function

    Modo de usar:

    =PROCV_VISÍVEIS(D1;A1:B5;2)

    Esta resposta foi útil?

    5 pessoas acharam esta resposta útil.
    0 comentários Sem comentários

1 resposta adicional

Classificar por: Mais útil
  1. Anônima
    2016-04-13T16:58:39+00:00

    Uma solução possível usando uma fórmula matricial (aquelas que precisam ser confirmadas com Ctrl+Shift+Enter simultaneamente)

    Dados antes do Filtro

    A B C (cabeçalhos na linha 1)

    Nome Teste Nota
    Antonio Teste1 60
    Carlos Teste1 58
    Maria Teste1 62
    Antonio Teste2 64
    Carlos Teste2 60
    Maria Teste2 56

    Em alguma célula vazia (A10 por exemplo) ponha o nome que você está interessado

    A10

    Antonio

    Fórmula matricial em

    B10

    =ÍNDICE($C$2:$C$7;CORRESP(A10;SE(SUBTOTAL(103;DESLOC($A$2:$A$7;LIN($A$2:$A$7)-LIN($A$2);0;1));$A$2:$A$7);0))

    confirme com Ctrl+Shift+Enter

    A fórmula retornará 60 (o primeiro valor de Antonio)

    Aplique o filtro (por exemplo: selecione apenas Teste2 na coluna B)

    Os dados ficam

    Nome Teste Nota
    Antonio Teste2 64
    Carlos Teste2 60
    Maria Teste2 56

    E o resultado em B10, automaticamente, muda para 64 (o primeiro valor visível de Antonio)

    Espero que ajude

    M.

    Esta resposta foi útil?

    0 comentários Sem comentários