如何使用 VLOOKUP 在一串数字中找到与某个数字完全匹配的数字

如何使用 VLOOKUP 在一串数字中找到与某个数字完全匹配的数字

我有以下工作表,其中有一列包含数字列表,还有一列包含名称

124, 3, 7, 1, 41      Sarah
9, 76, 161, 8         Chris
91, 41, 21, 4, 2      Alan

我希望能够使用 VLOOKUP 对列进行搜索,以将单个整数与名称进行匹配,如下所示

输出:

1     Sarah
2     Alan
3     N\A
4     Alan
...

这是我所拥有的:=VLOOKUP("*"&A1&"*",Sheet1!A$1:C$3,2,FALSE)

我遇到的问题是它在字符串中找到部分数字,例如

1 在“124”中,因此匹配,但不是完整数字

我该如何解决这个问题?

答案1

INDEX/MATCH您可以在数组公式中使用,指定所需的数字前面必须有“ ,”,后面跟着相同的字符串:

=INDEX(B$1:B$3,MATCH("*, "&D1&", *",", "&A$1:A$3&", ",0))

注意:你需要CRTLShiftEnter确认此公式

在此处输入图片描述

答案2

考虑以下用户定义函数:

Public Function pukoolv(v As Variant, r As Range) As Variant
    Dim i As Long, temp As String, temp2 As String

    arr = r
    pukoolv = ""
    temp2 = CStr(v)

     For i = LBound(arr, 1) To UBound(arr, 1)
        temp = Replace(arr(i, 1), " ", "")
        brr = Split(temp, ",")
        For Each b In brr
            If b = temp2 Then
                pukoolv = arr(i, UBound(arr, 2))
                Exit Function
            End If
        Next b
    Next i
End Function

使用方式如下:

在此处输入图片描述

用户定义函数 (UDF) 非常容易安装并使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

消除UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

使用Excel 中的 UDF:

=pukoolv(lookup_value,lookup_table)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

答案3

你可以让你的查找做一些更复杂的事情。例如:

=VLOOKUP("*"&A1&"*",Sheet1!A$1:C$3,2,FALSE)

会成为:

=VLOOKUP("* "&A1&", *",Sheet1!A$1:C$3,2,FALSE)

请注意在形成查找值时在前面的星号中添加的空格A1以及在后面添加的逗号和空格。A1

完整数字(如“124”)前面会有一个空格,后面会有一个逗号和一个空格,而数字的一部分(如“24”)则不能这样表示。

有了更精准的查找值,您的困难就会完全消失。

相关内容