Neste artigo, tentaremos obter a posição da primeira correspondência parcial em um intervalo.
Como sabemos, a função MATCH retorna o índice ou posição da primeira correspondência em um intervalo. Portanto, é óbvio usar essa função para obter a posição da primeira correspondência em um intervalo. Como ele suporta os operadores curinga, também podemos usar MATCH para fazer correspondências parciais.
Assim que conseguirmos a posição da primeira partida, podemos fazer várias coisas. Como recuperar aquele valor ou valor adjacente ou não adjacente usando a função INDEX, ou fazer uma função dinâmica. Depende da sua necessidade e criatividade.
Fórmula genérica para a primeira partida parcial encontrada
Para string de código fixo:
= CORRESPONDÊNCIA ("*str*",faixa,0)
Para referência de célula:
= CORRESPONDÊNCIA ("*" & célula & "*", intervalo, 0)
Str: é o texto ou string que você deseja corresponder parcialmente no intervalo. Pode ser qualquer coisa, uma célula ou uma string codificada.
Faixa: é o intervalo em que você procurará str.
0: É o parâmetro para correspondência exata. Você também pode usar FALSE.
Observe que costumávamos * (astriscos) na frente e no final da string str. Este é o operador curinga para corresponder a qualquer valor que tenha qualquer string antes e depois …
Vamos ver um exemplo.
Aqui eu tenho um registro de vitórias, derrotas e empates. Queremos obter a primeira posição de vitória, derrota e empate.
Portanto, se eu definir o código fixo, a fórmula para encontrar a primeira posição de correspondência parcial em cada célula será:
= CORRESPONDÊNCIA ("* ganhou *", A2: A10,0)
= CORRESPONDÊNCIA ("* perda *", A2: A10,0)
= MATCH ("* empate *", A2: A10,0)
= CORRESPONDÊNCIA ("*" & C2 & "*", $ A $ 2: $ A $ 10,0)
Como funciona
Ele simplesmente usa a funcionalidade do Excel para fazer correspondências parciais. MATCH procura por qualquer string que contenha a string fornecida entre * (asteriscos) e retorna a primeira posição encontrada.
Encontre a posição da primeira correspondência parcial no intervalo usando a função VBA do FirstPartMatch
Se você copiar o código vba abaixo no módulo vba do excel, você pode usar esta função para obter a primeira posição da correspondência parcial. Para o exemplo acima, basta escrever esta fórmula:
= FirstPartMatch (C2, $ A $ 2: $ A $ 10)
Você obterá a posição da primeira correspondência. Assim.
Como funciona
O primeiro argumento é a string que você deseja pesquisar por correspondência parcial.
O segundo argumento é o intervalo no qual você deseja obter a posição de sua string.
= FirstPartMatch (str, range)
Para usar esta fórmula para correspondência parcial, copie o código abaixo no módulo VBA.
Função FirstPartMatch (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 For Each cll In rng tmp = tmp + 1 If InStr (1, LCase (cll.Value2), LCase (str)) > 0 Then position = tmp Exit For End If Next cll If position Then FirstPartMatch = position Else FirstPartMatch = "#NA" End If End Function
Correspondência parcial sensível a maiúsculas e minúsculas para a posição
A função definida pelo usuário acima para encontrar a primeira correspondência parcial não fará distinção entre maiúsculas e minúsculas. Se você quiser fazer distinção entre maiúsculas e minúsculas, remova Função Lcase da linha 7.
Então, o código para diferenciação de maiúsculas e minúsculas será:
Função FirstPartMatchCASE (str As String, rng As Range) Dim tmp, position As Long position = 0 tmp = 0 Para Cada cll In rng tmp = tmp + 1 If InStr (1, cll.Value2, str)> 0 Then position = tmp Sair para End If Next cll If position Then FirstPartMatchCASE = position Else FirstPartMatchCASE = "#NA" End If End Function
Você pode ver que “ganhou” e “empate” neste caso não foram encontrados. Uma vez que não há vitória ou empate em minúsculas.
Então, sim pessoal, essas são as maneiras de encontrar a posição da primeira correspondência parcial no Excel. Eu disse que você pode encontrar a primeira posição de correspondência parcial usando a função MATCH predefinida e usando a função de correspondência definida pelo usuário. Se você tiver outras idéias ou dúvidas, compartilhe conosco aqui na seção de comentários abaixo.
Como usar a função MATCH no Excel
Como usar a função INDEX no Excel
Os 5 principais valores do Vlookup com valores duplicados usando INDEX-MATCH no Excel
Artigos populares:
A função VLOOKUP no Excel
CONT.SE no Excel 2016
Como usar a função SUMIF no Excel