İki sütun nasıl eşleştirilir ve vba'da üçüncü değer nasıl döndürülür

0

Soru

İki sütunu eşleştirmem gerekiyor, biri "all_fılenames", diğeri ise "part_number" Eşleşmeleri bulmak için VLOOKUP kullandım ve işe yaradı. Ancak sorun, "all_fılenames "altında yaklaşık 2.000 veri ve" part_number " altında yalnızca 500 olmasıdır. "Part_number" altındaki veriler, "all_fılenames" altındaki birden çok veriyle eşleşebilir, ancak sorun, belirli adla eşleşmemesidir. Örnek: A Sütunu all_fılenames olacaktır, bunlar depolananlardır: XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_ön.jpg. "Part_number" olacak B Sütununda şu şekilde saklanır: XP605.jpg AR131.jpg 28528.jpg 2543.jpg. Yani teoride bu bir eşleşme olarak kabul edilir, ancak A Sütununda eksik olan birkaç kelime veya sayı olduğundan eşleşmez. Yani benim sorunum bu sorunu çözmek için bir UDF yapmak. Yeterince açıkladım mı emin değilim. Herkes bana yardımcı olabilir? Teşekkür ederim.

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

Şimdiye kadar bulduğum ve denediğim tek kod bu, ancak sorun şu ki hala eşleşmiyor çünkü tam bir eşleşme aramaya çalıştığını düşünüyorum. VBA konusunda gerçekten yeniyim, bu yüzden hala kullanmakta zorlanıyorum.

Parça numarasıyla başka bir sütuna dönmek için 'eşleşme değerine' ihtiyacım var ve birden fazla eşleşme varsa hepsinin sütunun içinde olması gerekiyor.

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

En iyi cevabı

0

Veri sütunlarınızı temizlemek için SOL ve bul'u kullanabilirsiniz. Dosya adlarınız A sütunundaysa

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

Her şeyi ilk "_"ye kadar kaldıracaktır. Parça listeniz için

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

Bu kurtulmak "olacak.jpg " adının bir kısmı (veya yorumlarda önerildiği gibi değiştir'i kullanabilirsiniz). Bu, VLOOKUP işlevini daha mutlu hale getirecektir

2021-11-24 03:21:24

Diğer dillerde

Bu sayfa diğer dillerde

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