1

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

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) 由于某种原因不起作用。

4

2 回答 2

3

raphael 你已经找到了——你的号码作为文本存储在一个查找表中,作为一个数字存储在另一个查找表中。在每一行添加一个 ' 将修复它,但这是非常可怕的任务。单击绿色箭头也可以修复它,但是对于大表来说,excels 默认方法可能真的很慢(而且它还会更改您的源数据,这对我来说是一个禁忌,因为当您更新数据时,您必须再来一遍)。在这种情况下,更改格式很少有帮助。

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

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

如果表格包含“文本”并且查找值为数字,则可以将其转换为如下文本:

=VLOOKUP(TEXT(A1,0),C:D,2,FALSE)
于 2013-07-22T05:16:40.277 回答
0

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

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

于 2013-07-21T22:08:05.740 回答