我在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的值(找到匹配关键字的行号)。
任何帮助将不胜感激。
答案 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