【问题标题】:Excel: Lookup concatenated valueExcel:查找串联值
【发布时间】:2013-01-15 10:46:11
【问题描述】:

有谁知道为什么以下返回#N/A?

=LOOKUP(TEXT(CONCATENATE($I$8,$I$5,"1"),0), CritCodes, Criteria)

I5 和 I8 包含以下公式,并且分别正确计算为数字 4 和 R:

=LOOKUP(B37, LevelsRange,LowLevel)
=LEFT(B29,1) 

所以问题公式正在被正确评估,但它不会找到结果。

=LOOKUP("R41", CritCodes, Criteria)

任何帮助将不胜感激。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    根据我的评论 - 尝试使用此公式

    =INDEX(criteria,MATCH($I$8&$I$5&1,Critcodes,0))

    LOOKUP 通常不适合查找,除非查找范围按升序排序.....并且您可能需要“最近匹配”。此处使用的INDEX/MATCH 不需要任何排序,但也只提供完全匹配,因此如果 Critcodes 中不存在查找值,您将得到 #N/A

    请注意,在您的示例中,如果 I8 = "R" 和 I5 = 4 则 $I$8&$I$5&1 = "R41" - 显然这是一个文本值,但如果 I8 和 I5 都是数字,那么理想情况下是 Critcodes都应该是文本值(在任何带有 ' 的数字之前,比如 '41)

    【讨论】:

      【解决方案2】:

      它试图查找字符串“41”而不是整数 41。将公式更改为:

      =LOOKUP(INT(CONCATENATE($I$5,"1")), 写作, 标准)

      【讨论】:

      • 是的,当我将字段更改为文本时,它起作用了。现在我有一个奇怪的问题 - 我会更新这个问题。
      • 是否需要使用 Lookup 功能?可以改用 VLookup(CritCodes 和 Criteria 范围是否相邻/在同一行上?)我在使用 Lookup 时遇到问题,它返回近似匹配而不是我需要的匹配...有一些事情要做让它工作,例如您需要确保 Lookup_Vector 已排序。
      • 完全正确的 MattCrum - VLOOKUP 是一个选项,但在这里给出了两个不同的命名范围,您可以使用它 - =INDEX(criteria,MATCH("R41",Critcodes,0)) - 这只会给出完全匹配(如果没有完全匹配,则为 #N/A ) 并且什么都不需要排序
      • @barryhoudini 已经解决了——你是明星!请把它作为答案!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多