Excel-搜索字符串的一部分,表中的vlookup值

时间:2018-07-17 14:19:01

标签: excel string range match vlookup

我在Excel中有两个表:

table 1中,一列包含数据字符串。该格式不是结构化的,但将始终包含我尝试与table 2中的列匹配的关键字。示例:

32984723987 BLA BLA &*& KEYWORD 232328 BLA

table 2中,第一列包含关键字。第二列子类别标签。

如果vlookup中存在关键字,如何使用table 2或其他公式来填充table 1中匹配的子类别?

我一直在尝试范围查找,但是我需要输入一些搜索条件。但是哪一个呢?我需要检查table 2中整个关键字列。

编辑:要更清楚:lookup_value需要检查Sheet2!A1单元格的一部分字符串(关键字)是否存在于Sheet2!A1:A100中( 关键字)。如果存在,则公式应返回Sheet2!Bx的值(找到匹配关键字的行号)。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您只需要在vlookup上使用通配符,例如:

=VLOOKUP("*"&table2!A1&"*", table1!A:A, 1, FALSE)

编辑:使用此VBA代码(已编辑代码)

Sub findKeywords()

Dim wb As Workbook
Dim rWs, kWs As Worksheet
Dim dataColumn, targetColumn, keysColumn As Integer

Set wb = ThisWorkbook
Set rWs = wb.Sheets("rawSheet") 'this is the sheet your raw data is
Set kWs = wb.Sheets("keySheet") 'this is your sheet with the keys
dataColumn = 1 'this is the number of the column you will search
targetColumn = 2 'this is the number of the column you will insert the matched row
keysColumn = 1 'this is your column with the keywords you will look for

For Each r In rWs.Range(rWs.Cells(1, dataColumn).Address, rWs.Cells(rWs.Rows.Count, dataColumn).End(xlUp).Address)
    For i = 1 To kWs.Cells(kWs.Rows.Count, keysColumn).End(xlUp).Row
        If r.Value Like "*" & kWs.Cells(i, keysColumn).Value & "*" Then
            r.Offset(0, 1).Value = kWs.Cells(i, keysColumn).Offset(0, 1).Value
            Exit For
        End If
    Next i
Next r

End Sub