为什么这个工作? 探索VLOOKUP公式

我有一个excel 2010电子表格4列。

列A:我销售的产品的UPC代码列表。 大约有300条线路。

B栏:公式(稍后更多)

C列:UPC代码的另一个列表。 这些UPC代码大约有10,000行。

D列:与C列中的UPC代码相对应的库存盘点

公式:

=VLOOKUP(A2,C:D,2,FALSE) 

我的想法是将我的UPC代码与我的供应商的UPC代码相匹配,以检索相应的库存盘点。

所有数据都从其他电子表格粘贴到新的电子表格中,并作为粘贴,以确保没有其他字符或格式被导入。

这个公式被拖下了300条线。

我在列B中收到错误#N / A,直到我在列A中的值之前插入以下字符:

 ' 

注意: '是通过点击单元格手动插入并在上面的框中键入'

紧接着完成后,#N / A将变为从D列检索的相应库存。

我的问题是为什么这个工作? 为什么没有'不行'的方法? 有没有办法快速添加' A列之前的所有值? 注意:由于某种原因,CONCATENATE(“'”,A2)不起作用。

拉斐尔你已经在那里 – 你的号码被存储为一个查询表中的文本,另一个号码。 给每一行添加一个'会修复它,但这是非常可怕的任务。 点击绿色的箭头也可以修复它,但超过默认的方法可以真的很慢的大表(并且它也改变了你的源数据,这对我来说是一个不允许的,因为当你更新数据,你将不得不再来一遍)。 在这种情况下更改格式很less有帮助。

如果表格包含数字并且查找值以数字forms存储为文本,则可以将查找值乘以1:

 =VLOOKUP(A2*1,C:D,2,FALSE) 

如果表格包含“文本”,查找值是数字,您可以将其转换为文本,如下所示:

 =VLOOKUP(TEXT(A1,0),C:D,2,FALSE) 

这是我的理论。 在VLOOKUP中,如果查找值(A2)小于查找表(C:D)中的最小值,则返回N / A。 当你在引号(')的前面加上A2时,不是一个数字。 因此,例如,一个1002的UPC不再被视为数字一千零二,而是作为string序列one-zero-zero-two。 这让VLOOKUP以不同的方式进行比较,避免N / A。

您可以尝试在列A中使用Ctrl-1,并将其全部视为文本。