如何匹配两个列和返回的价值,在第三VBA

0

的问题

我必须符合两栏,一个具有"all_filenames",而其他具有"的字段part_number"我已经使用VLOOKUP找到匹配并且它没有工作。 然而,问题是,在"all_filenames有大约2,000数据和下"的字段part_number"只有500人。 资料下"的字段part_number"可能相匹配的多个数据根据"all_filenames",但问题是它不匹配的特定名称。 例如:列一个将all_filenames,这些都是什么样的储存:XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_Front.jpg. 在B栏将"字段part_number"存储为:XP605.jpg AR131.jpg 28528.jpg 2543.jpg. 因此,在理论上,这将被认为是一个匹配,但是由于有几个字或号码丢失从列有不匹配。 所以我的问题是使一个名来解决这个问题。 不知道,如果我解释这不够好。 任何人都可以帮我吗? 谢谢你。

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

迄今为止,这是仅有的代码,我已经找到,并试图但问题是它仍然不符,因为我认为它试图寻找一种确切匹配。 我真的新VBA所以我仍然有困难时使用。

我需要的'匹配值'返回在另一个列有这一部分数量和如果有多个匹配我需要所有它要内列。

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

最好的答案

0

你可以只用左,并找到清理你的列的数据。 如果你的文件名称中列有然后

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

将删除一切都交给第一个"_". 你的零件清单

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

将摆脱的"。jpg"部分的名称(或者你可以使用替代建议的意见). 这将使VLOOKUP功能快乐

2021-11-24 03:21:24

其他语言

此页面有其他语言版本

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