2016-06-15 4 views
0

У меня есть два столбца в Excel:Excel: Проверка частичного совпадения из колонки с одной ячейкой

 Column A 
Row 1 Apple 
Row 2 Blueberry 
Row 3 Strawberry 

     Column B 
Row 1 App 
Row 2 Application 
Row 3 Appendage 

Я хотел бы использовать столбец B, чтобы увидеть, если какие-либо элементы внутри него существует в пределах данной ячейки в колонке А До сих пор я использовал функции VLOOKUP и MATCH, и, похоже, я не могу нормально работать, но MATCH, похоже, тот, который я должен использовать. Я попытался использовать подстановочные знаки в столбце B, и он возвращает ошибку значения. Вот что у меня есть:

=MATCH(A1,"*"&B:B&"*",0) 

Ваша помощь очень ценная!

ответ

1

Существует естественное решение VBA. В стандартный код модуля место:

Function PartialMatch(v As Variant, R As Range) As Variant 
    Dim i As Long 
    For i = 1 To R.Cells.Count 
     If v Like "*" & R.Cells(i).Value & "*" Then 
      PartialMatch = i 
      Exit Function 
     End If 
    Next i 
    PartialMatch = CVErr(xlErrNA) 
End Function 

Тогда где вы хотите его в таблице можно использовать формулу:

=PartialMatch(A1,B:B) 

Это даст индекс первого частичного совпадения, если таковая существует, или #N/A если нет. Обратите внимание, что пустая ячейка считается частичным совпадением, поэтому вы можете захотеть убедиться, что диапазон, который вы передаете функции, не содержит пробелов (поэтому не пропускайте весь столбец). Это или переопределить то, что вы подразумеваете под частичным совпадением.

+0

Джон, вы потрясающий! Это сработало отлично! – scallahan1119

+0

Я рад, что он работает на вас. Вы также можете посмотреть в надстройке Microsoft Fuzzy LookUp: https://www.microsoft.com/en-us/download/details.aspx?id=15011. Я не использовал его, но люди иногда обсуждают его на Stack Overflow, и похоже, что он может решить вашу проблему более напрямую. –

+0

Я действительно загрузил и установил его, но он дал ошибку при попытке запустить его в первый раз, поэтому мне пришлось отключить его. Спасибо за предложение, хотя и за блестящий код! – scallahan1119