Como corresponder a duas colunas e o valor de retorno em terceiro no VBA

0

Pergunta

Eu tenho que corresponder a duas colunas, tem-se "all_filenames", enquanto a outra tem o "part_number" eu tenho usado PROCV para encontrar as correspondências, e ele fez um trabalho. No entanto, o problema é que em "all_filenames há cerca de 2.000 de dados e em "part_number" há apenas 500. Os dados em "part_number" pode corresponder a vários dados em "all_filenames" mas o problema é que não coincide com o nome específico. Exemplo: A Coluna seria all_filenames, estes são armazenados: XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_Front.jpg. Na Coluna B, que seria "part_number" é armazenado como: XP605.jpg AR131.jpg 28528.jpg 2543.jpg. Assim, em teoria, isso seria considerado como um jogo, mas desde há algumas palavras ou falta do número da Coluna que ele não vai corresponder. Então, meu problema é fazer uma UDF para resolver este problema. Não sei se expliquei bem o suficiente. Alguém pode me ajudar? Obrigado.

Public Function WhereIs(rIn As Range, rList As Range) As String
   Dim s1 As String, r As Range
   Dim s2 As String
   WhereIs = ""
   s1 = rIn.Text

   For Each r In rList
      s2 = r.Text
      If InStr(1, s2, s1) > 0 Then
         If WhereIs = "" Then
            WhereIs = r.Address(0, 0)
         Else
            WhereIs = WhereIs & "," & r.Address(0, 0)
         End If
      End If
   Next r

   If WhereI <> "" Then WhereIs = "no match" 
      
End Function

Até agora, este é o único código que eu encontrei e tentou, mas o problema é que ainda não corresponde porque eu acho que ele tenta procurar uma correspondência exata. Eu estou realmente novo com o VBA então, eu ainda estou tendo um tempo difícil de utilizar.

Eu preciso o "jogo de valor' para voltar em outra coluna com o número de peça e se há vários jogos que eu preciso tudo isso para estar dentro da coluna.

excel vba
2021-11-23 23:07:28
1

Melhor resposta

0

Você pode simplesmente usar a ESQUERDA e ENCONTRE limpar as colunas de dados. Se seus nomes estão na coluna A, em seguida,

=LEFT(A1,FIND("_",A1)-1)

Irá remover tudo, até o primeiro "_". Para sua lista de peças

=LEFT(C1,LEN(C1)-4)

vai livrar-se do ".jpg" parte do nome (ou SUBSTITUIR, conforme sugerido nos comentários). Isso fará com que a função PROCV mais feliz

2021-11-24 03:21:24

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................