所有单次使用的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,所以我只处理整数。不幸的是,我得到了同样的结果。
我还尝试将公式分成两列。同样,减法工作并解析为十进制数。但是,当我随后尝试将该数字作为单独的语句进行查找时,它仍然失败。
发布于 2015-09-16 18:12:57
这可能是由于数字存储在Excel中的方式所致。如果您舍入减法或使用TRUE作为外部查找中的最后一个参数,则公式似乎有效。为了截图,我把V2改成了A2。
=VLOOKUP(ROUND(VLOOKUP(A2,Praise,2,FALSE),-VLOOKUP(D2,Praise,2,FALSE),1),Progress,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。
发布于 2017-07-20 15:39:44
你是不是漏掉了一些括号,以便让公式清楚你想要的操作顺序?
=VLOOKUP((VLOOKUP(V2,PRAISe,2,FALSE))-(VLOOKUP(D2,PRAISe,2,FALSE)),Progress,2,FALSE)https://stackoverflow.com/questions/32603629
复制相似问题