为什么这项工作? 探索VLOOKUP式(Why does this work? Explorin

2019-10-18 09:50发布

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

柱答:我卖的产品的UPC代码列表。 大约300线。

B栏:式(以后会更多)

柱C:的UPC代码另一个列表。 这些UPC代码是10000左右线。

列d:其对应于UPC代码在C列的库存数

公式:

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

我们的想法是与我的供应商的UPC代码,以获取相应的库存数匹配我的UPC代码。

所有的数据粘贴到其他电子表格新的电子表格并粘贴为只值 ,以确保没有其他字符或格式化进口。

这个公式是拖累所有300行。

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

'

注: '是通过点击细胞和打字手动插入'在上面的框中。

这样做是后,立即将该#N / A将改变到从列D中检索相应的库存

我的问题是,为什么这会起作用? 为什么没有方法'不行? 有没有一种方法可以快速添加'在列A的所有值过吗? 注:CONCATENATE(“'”,A2)不会出于某种原因。

Answer 1:

拉斐尔你知道了那里 - 你的电话号码存储为查找表的一个文本,作为其他的数字。 添加“每条线将修复它,但它是相当可怕的任务。 点击绿色箭头还可以修复它,但擅长默认方法可用于大表很慢(它也改变了你的源数据,这对我来说是一个禁忌,因为当你更新数据,你必须再来一遍)。 更改格式在这种情况下很少有帮助。

如果表中包含数字和查找值是数字存储,如文本,你可以乘以1查找值:

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

如果表包含“文本”和查找值号码,您可以将其转换为文本是这样的:

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


Answer 2:

这里是我的理论。 在VLOOKUP,如果查找值(A2)大于在查找到的表中的最小值(C:d),那么它返回N / A。 当你在前面加上引号标志(')你让A2字符串,而不是一个数字。 因此,例如1002 UPC不再视为一个千和两号,但作为字符串序列一零 - 零式两种。 这让VLOOKUP做的比较不同,避免了N / A。

您可以尝试按Ctrl-1在A列,并得到它来治疗他们都为文本。



文章来源: Why does this work? Exploring the VLOOKUP formula