我在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列的给定单元格中。到目前为止,我使用了VLOOKUP
和MATCH
函数,但我不能似乎要么正常工作,但MATCH
似乎是我应该使用的那个。我尝试在B列上使用通配符,它返回一个值错误。这就是我所拥有的:
=MATCH(A1,"*"&B:B&"*",0)
非常感谢您的帮助!
答案 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
(如果不存在)。请注意,空白单元格计为部分匹配,因此您可能需要确保传递函数的范围不包含空格(因此不要传递整个列)。那,或者通过部分匹配重新定义你的意思。