2016-04-01 158 views
0

我已经查看了大量“VLOOKUP” - 相关问题,似乎无法找到类似的问题。当查找列包含嵌套公式时,VLOOKUP返回N/A

我的查找表的搜索列有格式如下数据:

HT100 
HT101 
HT102 

但这些值是基于,其中原始值为公式:

HT100 - a sweet truck 
HT101 - another sweet truck 
etc. 

所以查找表的搜索栏实际上包含以下公式:

=LEFT(A2,5) 

其中A2指

LDR100 - a sweet front-end loader 

因为它长6个字符,我不能使用:但是

,就会出现问题,当我到达,看起来像这样的数据的一小部分数据的完整版以上公式。相反,我开始使用:

=LEFT(A2,SEARCH(" ",A2,1)) 

这会在第一个空格字符处截断字符串。

问题:如果数据被格式化 “HT100”

VLOOKUP将返回匹配。

如果数据格式为“LEFT(A2,5)”,VLOOKUP将返回一个匹配项。

VLOOKUP将不会返回匹配,如果数据被格式化“LEFT(A2,SEARCH(””,A2,1))

我的问题是:为什么VLOOKUP不能返回匹配时,第二个参数?左()不是一个常数

+0

注意:如果将LEFT()的第二个参数放在另一列并引用它,例如'= LEFT(A2,G2)',那么VLOOKUP也无法返回匹配项,其中G2是包含数字的单元格5或6(根据需要) – Arne

+2

您的'LEFT(A2,SEARCH(“,,A2,1))公式在结果末尾留出空格。将公式更改为= trim(LEFT(A2,SEARCH(“”,A2,1)))' –

+2

@ScottCraner就像那样简单。使用'= LEFT(A2,SEARCH(“”,A2,1)-1)'也适用。感谢您的快速回复 – Arne

回答

-1

这是因为您在您的查找值空间
试试这个:

=VLOOKUP(LEFT(A2, SEARCH(" ",A2,1)**-1**),$B$2:$C$4,2,FALSE) 

还是尽量不要精确匹配:

=VLOOKUP(LEFT(A2, SEARCH(" ",A2,1)-1),$B$2:$C$4,2,**TRUE**)