【问题标题】:Using a VLOOKUP lookup_value that contains a formula使用包含公式的 VLOOKUP 查找值
【发布时间】:2017-03-23 03:41:58
【问题描述】:

使用 Excel 我正在使用 VLOOKUP,其中 lookup_value 包含一个公式,该公式生成应搜索的字符串。公式:

=VLOOKUP(MID(A2,2,5),Sheet2!A:B,2,0)

所有结果都返回 #N/A,但是如果我用 MID() 函数替换它的值,它会生成 VLOOKUP 函数。

示例数据:

表 1

$#00001#
$#00002#

表 2

00001 | Hello
00002 | World

【问题讨论】:

  • sheet2 中的 00001 实际上是单元格中的 1 吗,已格式化为"00000"(前导零)?如果是这样,您需要使用=VLOOKUP(--MID(A2,2,5),Sheet2!A:B,2,0) 将MID 转换为真实数字。无论真实数字的显示格式如何,您都无法在一列真实数字中查找看起来像数字的文本。
  • 正确@Jeeped,问题解决了。
  • 您想将此归类为错字还是我应该发布答案?
  • 作为答案,前导零的异常出现在我的示例中,但我试图解决的实际场景没有前导零,它只有五位数字。因此,答案不一定是针对前导零,而是针对我遇到的一般问题。

标签: excel excel-formula vlookup


【解决方案1】:

sheet2 中的 00001 实际上是单元格中的 1,已格式化为 "00000" 以显示前导零。这不会改变 1 的原始基础价值。您需要将 MID 结果转换为带有 double unary 之类的真数,

 =VLOOKUP(--MID(A2,2,5),Sheet2!A:B,2,0)

无论真实数字的显示格式如何,您都无法在真实数字列中查找看起来像数字的文本。

提示:除非您手动更改单元格对齐方式,否则文本默认为左对齐;默认情况下,数字是右对齐的。这是可以证明上述情况的快速视觉检查。

【讨论】:

    【解决方案2】:

    我同意 Jeeped 的回答。但是,看起来如果 $ 是文字,公式实际上应该包含

    MID(A2,3,5)
    

    因为 00001 从位置 3 开始。

    将 Sheet2 中的 A 列格式化为 Text 也是一种解决方案。

    附:我写的是答案,因为我无法对这个问题发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多