Excel:检查列与单个单元格的部分匹配

时间:2016-06-15 14:21:16

标签: excel vlookup excel-match

我在Excel中有两列:

      Column A
Row 1 Apple
Row 2 Blueberry
Row 3 Strawberry

      Column B
Row 1 App
Row 2 Application
Row 3 Appendage

我想使用B列来查看其中的任何单元格是否存在于A列的给定单元格中。到目前为止,我使用了VLOOKUPMATCH函数,但我不能似乎要么正常工作,但MATCH似乎是我应该使用的那个。我尝试在B列上使用通配符,它​​返回一个值错误。这就是我所拥有的:

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

非常感谢您的帮助!

1 个答案:

答案 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(如果不存在)。请注意,空白单元格计为部分匹配,因此您可能需要确保传递函数的范围不包含空格(因此不要传递整个列)。那,或者通过部分匹配重新定义你的意思。