【问题标题】:VLOOKUP Finding matching pairsVLOOKUP 查找匹配对
【发布时间】:2016-09-08 22:28:35
【问题描述】:

我目前在使用 VLOOKUP 在列中查找匹配项时遇到问题。

在 A 列中,我有客户姓名,在 B 列中,我有每个客户对应的电话号码。

在 D 列中,我有一个可能的客户名称列表,如果存在电话号码,我想用他们的电话号码填充 E 列。

我正在使用的当前论坛是:

=VLOOKUP(D2,$A$2:$B$10706,2,FALSE)

其中 D2 是第一个“客户名称”

$A$2:$B$10706 是 A+B 列的全部范围

索引 2 是匹配时返回的电话号码

FALSE 表示只返回完全匹配。

即使对于我已经完成并手动找到的完全匹配,我也会不断收到 #N/A 错误,我不知道为什么。

谁能提供一些方向?

【问题讨论】:

  • 能否请您看一下您的数据?截图可以吗?大概和数据有关。没有找到完全匹配的东西,否则它应该找到一些东西。请重新检查您的数据。
  • 您确定没有前导或尾随空格吗?如果没有样本数据,很难判断为什么会出现这种情况。
  • 很难说没有数据样本,因为您使用的是精确匹配,您是否检查过目标上的简单问题,例如空格/换行符?
  • 尝试将匹配项等同起来,看看它是否返回 TRUE=D2=A35 一样,其中 A35 应该与 D2 匹配。
  • 公式评估在这种情况下无济于事。 VLOOKUP 是一步计算出来的,你将看不到它失败的原因

标签: excel excel-formula vlookup


【解决方案1】:

据我从您给我们的屏幕截图中可以看出,您的问题是,您在一列中有数字,而在其他数字中存储为文本(请参见单元格左上角的绿色小箭头)。

双击单元格,然后输入,使其从文本变为数字,然后vlookup就可以工作了。

要更改整个列并从所有单元格中删除“数字存储为文本”,您可以执行以下小“hack:

  • 复制整列
  • 转到一个空列使用
  • Pastespecial->操作->添加

【讨论】:

  • 还可以建议在他的查找公式中使用 Value(D2),这样他就不必为每个单元格都这样做。很好的收获。
  • @Kevin 你完全正确,我没想到!!!但如果他想要一个更永久的解决方案,而不必在每个公式中添加 VALUE() 函数,那么我已经用一个小“hack”编辑了我的答案,我发现它不时非常有用。
  • 有没有一种简单的方法可以将公式扩展到列的末尾,而不是向下拖动 12k+ 行?
  • 双击公式所在单元格的右下角,直到结束;)
  • 太棒了,非常感谢@Blenikos,在过去的几个小时里,我一直在努力反对这个简单的功能!
【解决方案2】:

你可以试试这个:

=VLOOKUP(D2*1,$A$2:$B$10706,2,FALSE)

这样您将在公式中转换为数字。

【讨论】:

  • 如果“存储为文本的数字”在您的范围内,那将无法解决您的问题。 VLOOKUP 本身修复它没有问题。问题在于数据本身。此外,正如上面在 cmets 中提出的,有一个特定于该工作的函数:VALUE()。
  • 这样的小技巧会让你在未来遇到更多麻烦,你不会记得你过去做了什么。
  • 从长远来看,我完全同意您的看法,但是,此解决方案与所提供的数据完全匹配,并且不需要用户采取额外的行动。
  • 使用 VALUE() 代替 '*1'。从短期和长期来看,这种方式更安全,而且更优雅!
  • 我很欣赏你的方法。更优雅 - 是的。更安全 - 完全取决于你的数据是什么以及你打算用它做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多