在Excel中Vlookup部分号码

时间:2014-07-03 18:32:45

标签: excel excel-formula excel-2010

我正在尝试通过查找最后8个字符在电话号码上使用vlookup,因为有些是从4401开始而其他只有1个。

这是我到目前为止所做的:

=IFERROR(VLOOKUP("*"&(TRUNC(RIGHT(A3*1,8),0)*1),J:N,5,FALSE),"Unknown")

列J包含电话号码,列N包含呼叫源(我正在尝试提取)。

我遇到的问题是iferror'Unknown'正在返回。如果我将数字更改为单词然后它可以工作,似乎它的数字就是问题。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否愿意并且能够稍微修改查找电子表格结构以使用下面的公式在单元格K1中添加列K并将其向下拖动?

=TEXT(J1,0)

然后你的VLOOKUP现在会看到文字而不是数字。因此通配符将起作用。只需确保相应地移动你的范围(J:N到K:O)。

=IFERROR(VLOOKUP("*"&(TRUNC(RIGHT(A3*1,8),0)*1),K:O,5,FALSE),"Unknown")

编辑:如果您不希望修改您的结构(可能最好不要根据具体情况而定),此数组公式将完成此任务。确保在输入公式后按Ctrl + Shift + Enter。如果不这样做,一切都将返回“未知”。 Ctrl + Shift + Enter是Excel知道它是一个数组函数的方式。

=IFERROR(INDEX($N:$N,MATCH("y",IF(RIGHT(A3,8)=RIGHT($J:$J,8),"y",),0)),"Unknown")

使用后一种方法,您可能希望在$ J:$ J范围内设置某种绑定,以便加速该函数,使其不检查该列中的每一行。选择比您的数据更大的东西(例如,$ J $ 1:$ J $ 50000)。

答案 1 :(得分:0)

这对我有用:

{=INDEX($N$1:$N$4,MATCH(A3&"",RIGHT($J$1:$J$4,8),0),1)}

您需要将其作为数组公式输入 - 所以 control + 在输入公式后输入