Criei o Suplemento. Se puderem dar o feedback, agradeço.
Função: SPROCV (Super PROCV)
Faz busca de dados como o Procv, mas a coluna procurada pode estar em qualquer coluna. Conhecido como PROCV invertido.
Autor: Jonas Cruz
Email: [email protected]
--------------------------------------------------------------
Instalação:
Salve o arquivo FuncoesPersonalizadas.xlam na pasta Documentos / Meus Documentos (do seu computador)
Com um documento qualquer aberto no Excel, clique no Menu Arquivo > Opções > Suplementos
Em Gerenciar (parte inferior), clique no botão Ir...
Na janela Suplementos, clique no botão Procurar...
Navegue até o arquivo FuncoesPersonalizadas.xlam que você salvou na pasta Documentos / Meus Documentos
Vai aparecer um novo Suplemento selecionado, clique no botão OK e volte ao Excel para testar a nova função SPROCV.
--------------------------------------------------------------
Sintaxe:
=SPROCV(valor_procurado;matriz_tabela;matriz_referencia;numero_indice_coluna)
--------------------------------------------------------------
Campos:
1) Valor Procurado: É o valor a ser localizado na coluna da tabela.
2) Matriz Tabela: É a tabela cujos dados são recuperados, podendo ser um intervalo ou nome de um intervalo. Mesmo raciocínio do intervalo do PROCV.
3) Matriz Referência: É o intervalo da coluna (em Matriz Tabela) cujos dados serão comparados com o Valor Procurado.
4) Número Índice Coluna: Número da coluna que será exibida (de acordo com Matriz Tabela). Mesmo raciocínio do índice da coluna do PROCV.
Importante***
Nos intervalos 2 e 3, você pode usar a linha de cabeçalho (títulos) da tabela ou não. Mas se usar no item 2, necessariamente tem que usar no item 3. Ou não usa em nenhum deles.
Public Function SPROCV(ByVal valor_procurado As Variant, _
                        ByVal matriz_tabela As Range, _
                        ByVal matriz_referencia As Range, _
                        ByVal numero_indice_coluna As Integer) As String
                        
    Dim contLin As Long
    
    For contLin = 1 To matriz_tabela.Rows.Count
        If UCase(matriz_referencia.Cells(contLin, 1)) = UCase(valor_procurado) Then
            SPROCV = matriz_tabela.Cells(contLin, numero_indice_coluna)
            Exit For
        Else
            If contLin = matriz_tabela.Rows.Count Then
                SPROCV = "#N/D" 'Nesse ponto está dando uma travada quando não encontra a correspondência
            End If
        End If
    Next contLin
    
End Function
                                                                                                	Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.
Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.
 
                    
                    	
                            Postado : 05/10/2017 7:23 am