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