Como obter a posição da primeira partida parcial

Anonim


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