使用VLOOKUP中的string函数的结果来匹配一个数字

在B2单元格中,我使用以下方法从单元格中拉出一些字符:

=MID($A2,27,2) 

然后我想在VLOOKUP中使用结果:

 =VLOOKUP(B2,Sheet2!A1:D97,3,0) 

这导致#N / A ….如果我改写公式的结果在单元格B2中,那么它工作正常。 我究竟做错了什么?? string函数不能用于这种方式吗?

你正在寻找Sheet2中的一个数字!A:A并且希望从同一个工作表的C列中返回一个相对于A列匹配的值。

但是,虽然MID($A2,27,2)返回text-that-look-like-a-number,但它仍然返回文本,您不能通过提供text-that-look-like-a-number来查找数字,除非您正在使用诸如COUNTIF之类的重头函数之一。

MID($A2,27,2)转换为一个真实的数字,或者在B2公式中,像=--MID($A2,27,2)或者在VLOOKUP函数中 ,

 =VLOOKUP(VALUE(B2), Sheet2!A$1:D$97, 3, FALSE) 

在这个公式中, VALUE函数与Double Unary具有相同的用途。

根据需要填写。

鉴于低声誉,我不能在评论中回答。

检查你的数据types – 你可能在这里有一些问题。 一般来说,可以在vlookups等中使用string函数。

例如,我在单元格A1中有一个数字1234。 然后在B1中有= MID(A1,2,2)这将导致一个string(不是一个数字)23.然后在C1中,我input23导致23(不是一个string)。 然后在D1中,我有= VLOOKUP(B1,C1,1,0),结果是#N / A,因为他发现没有匹配stringB1和数字C1。 另一方面,在E1中,我有= VLOOKUP(B1 * 1,C1,1,0),结果为23,因为他可以findB1 * 1之间的匹配(string'23'和数字1的乘法导致转换为数字23)和23号。

如果像Tom指出的那样less于28个字符,则VLOOKUP不匹配。

如果您使用IFERRORfunction,您可以用您select的值replace#N / A。

 =IFERROR(VLOOKUP(B2,Sheet2!A1:D97,3,0),"String Not Valid")