Comment associer les deux colonnes et la valeur de retour de la troisième en VBA

0

La question

J'ai pour correspondre à deux colonnes, l'une a "all_filenames" tandis que l'autre a le "part_number" j'ai utilisé RECHERCHEV pour trouver des correspondances et il a fait un travail. Cependant, le problème est que, en vertu de "all_filenames il y a environ 2 000 des données et à la rubrique "part_number" il y a seulement 500. Les données sous "part_number" pourrait correspondre à de multiples données sous "all_filenames" mais le problème est qu'il ne correspond pas au nom spécifique. Exemple: Colonne A serait all_filenames, ce sont stockées: XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_Front.jpg. Sur la Colonne B qui serait "part_number" c'est stockée en tant que: XP605.jpg AR131.jpg 28528.jpg 2543.jpg. Donc, en théorie, ce serait considéré comme un match, mais depuis il ya quelques mots ou le nombre manquant dans la Colonne A, il ne correspond pas. Donc mon problème est de faire un UDF de résoudre ce problème. Vous ne savez pas si je vous l'ai expliqué assez bon. Quelqu'un peut-il m'aider? Je vous remercie.

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

Jusqu'à présent c'est le seul code que j'ai trouvé et essayé mais le problème c'est que cela ne correspond toujours pas à cause je pense qu'il essaie de rechercher une correspondance exacte. Je suis vraiment nouveau avec VBA, donc je suis toujours avoir un moment difficile de l'utiliser.

J'ai besoin de la "correspondent à la valeur', pour retourner dans une autre colonne avec le numéro de pièce et s'il y a plusieurs matchs j'ai besoin de tout ça pour être à l'intérieur de la colonne.

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

La meilleure réponse

0

Vous pouvez simplement utiliser de GAUCHE et de TROUVER de nettoyer votre colonnes de données. Si vos fichiers sont dans la colonne A, puis

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

Va supprimer tout jusqu'à la première "_". Pour la liste des pièces

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

se débarrasser de la ".jpg" partie du nom (ou vous pouvez utiliser les REMPLACER, comme suggéré dans les commentaires). Cela permet de rendre la fonction RECHERCHEV plus heureux

2021-11-24 03:21:24

Dans d'autres langues

Cette page est dans d'autres langues

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