在excel中,如何进行vlookup,其中表数组只有部分查找值

时间:2017-01-25 16:30:36

标签: excel vlookup

如果这些是我的查找值:

Red donkey
Blue donkey
Green sheep
Red sheep

这些是我的表数组中第一列的值:

donkey
sheep

如何让我的vlookup看到驴或羊在我的查找值?到目前为止我最好的尝试:

=IF(ISNUMBER(SEARCH(Sheet2!$E,K2)),vlookup(K2,Sheet2!$E$1:$F$5,2,FALSE),0)

1 个答案:

答案 0 :(得分:0)

从一些疯狂的谷歌搜索中看不出有一个优雅的内置解决方案可以匹配范围(1:1单元格检查很容易)。

我已经编写了一个基本功能,您可以根据需要进行调整:

Public Function FuzzyMatch(ValueToFind As String, rng As Range)
Dim var As Variant
For Each var In rng
    If InStr(1, StrConv(var.Value, vbUpperCase), StrConv(ValueToFind, vbUpperCase)) > 0 Then
        FuzzyMatch = var.Address
        Exit Function
    End If
Next var
FuzzyMatch = "Not Found"
End Function

在这种情况下的用法是:

=FuzzyMatch(K2,Sheet2!$E$1:$F$5)

它当前返回单元格地址(例如,与间接使用),但您可以更改以下行:

FuzzyMatch = var.Address

到var.value,var.row,var.column等