Влокап Excel с частичной строкой

У меня есть 2 листа excel, лист A

Column A | Column B
12ABC      Value1
14AZC      Value2
44AXC      Value3
73XBC      Value4

и второй лист

Column A | Column B
BC         Value5
14AZC      Value6
44A        Value7

Мне нужно сделать vlookup на Sheet1 с данными из Sheet2.

Проблема в том, что мне нужно использовать только частичную строку из Листа2, так как может быть более одного возможного способа сопоставить оба значения. В результате мне понадобится результат:

Column A | Column B | Column C
12ABC      Value1     Value 5
73XBC      Value4     Value 5

Я пробовал с, но мне нужно наоборот

=IF(NOT(ISBLANK(A2)); VLOOKUP(A2 & "*"; Sheet2!$A$1:$B$40;2;FALSE))

person user3095929    schedule 04.06.2014    source источник


Ответы (1)


Если вы хотите использовать VBA, это очень просто:

Public Function FindOcc(Base As Range, Serc As Range) As String
    For Each x In Serc
        If InStr(Base.Value, x.Value) > 0 Then
            FindOcc = x.Offset(0, 1).Value
            Exit Function
        End If
    Next
End Function

В противном случае вы можете использовать скрытый столбец для каждых данных в листе2. По схеме:

введите здесь описание изображения

Используйте формулы:

E3 -> =F3&G3&H3
F3 -> =IFERROR(IF(FIND($A$10;A3);$B$10;"");"")
G3 -> =IFERROR(IF(FIND($A$11;A3);$B$11;"");"")
H3 -> =IFERROR(IF(FIND($A$12;A3);$B$12;"");"")
...

и автозаполнение...
В столбце E у вас есть результат...

person user3514930    schedule 04.06.2014