【问题标题】:VLookup of a VLookupVLookup 的 VLookup
【发布时间】:2015-09-16 08:42:36
【问题描述】:

所有一次性使用的 VLOOKUP 公式都可以完美运行,但下面的公式是嵌套的 VLOOKUP 并且总是失败。

=VLOOKUP(VLOOKUP(V2,PRAISe,2,FALSE)-VLOOKUP(D2,PRAISe,2,FALSE),Progress,2,FALSE)

当我考虑公式时,嵌套的 VLOOKUPS 工作正常并解析为正确的十进制值。当顶级 vlookup 搜索该十进制值时,我总是会收到未找到值的错误。

查找范围如下:

  PRAISE Lookup
    1-  1.20
    1+  1.80
    1=  1.50
    2-  2.20
    2+  2.80
    2=  2.50
    etc. etc.


   Grade Lookup
    1.20    1-
    1.50    1=
    1.80    1+
    2.20    2-
    2.50    2=
    2.80    2+
    etc. etc.

    Progress    
    0.00    0
    0.30    1
    0.60    2
    0.90    3
    1.20    4
    etc. etc.

我尝试过的事情。

起初我认为这是由于小数位和精确匹配问题,所以我将所有结果乘以 10,所以我只使用整数。不幸的是,我得到了同样的结果。

我也尝试过将公式分布在两列中。减法再次起作用并解析为十进制数。但是,当我尝试将该数字作为单独的语句查找时,它仍然失败。

【问题讨论】:

    标签: excel excel-formula vlookup


    【解决方案1】:

    这可能与数字在 Excel 中的存储方式有关。如果将减法四舍五入或使用 TRUE 作为外部查找中的最后一个参数,则公式似乎有效。为了截图,我把 V2 改成了 A2。

    =VLOOKUP(ROUND(VLOOKUP(A2,Praise,2,FALSE)-VLOOKUP(D2,Praise,2,FALSE),1),进度,2,FALSE) =VLOOKUP(VLOOKUP(A2,Praise,2,FALSE)-VLOOKUP(D2,Praise,2,FALSE),Progress,2,TRUE)

    但在进度表中存在 VLookup 的减法不完全匹配的组合,例如 2+ 返回 2.8 和 1- 返回 1.2。减法结果为 1.6,在 Progress 表上使用 FALSE 的 Vlookup 将返回错误,而将 TRUE 作为最后一个参数的 Vlookup 将返回下一个最小匹配项。

    因此,请检查您的 V2 和 D2 单元格中是否存在未找到的组合,并确定是否可以舍入,或者是否需要在外部查找中使用 TRUE。

    【讨论】:

    • 嗨。谢谢你的帖子。我已经尝试过了,但没有成功,然后又尝试了一次,但仍然没有成功。也就是说,我已经提出了一个可行的解决方案,它实际上按照您的建议使用 ROUND 函数。我的解决方案是改用这个公式。 =IF(Z2=0,"N/A",ROUND((VLOOKUP(V2,PRAISe,2,FALSE)-VLOOKUP(D2,PRAISe,2,FALSE))/0.3,0)) 虽然 VLOOKUP 失败了为什么它对你有用,对我不起作用,这超出了我的理解!无论如何感谢您的帮助,我很感激。
    【解决方案2】:

    你是不是遗漏了一些括号来让公式清楚你想要的操作顺序?

    =VLOOKUP((VLOOKUP(V2,PRAISe,2,FALSE))-(VLOOKUP(D2,PRAISe,2,FALSE)),Progress,2,FALSE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多