从 LOOKUP 函数到 VLOOKUP

from LOOKUP function to VLOOKUP

我正在尝试使用 VLOOKUP excel 函数而不是 LOOKUP。 我读过 VLOOKUP 优化得很好,但我无法调整它。 有什么帮助吗?

以下函数return:

=LOOKUP(2,1/((E1:E9>E10)-(E1:E9<E10)))

作用范围是:查找E10值,从下到上在E1:E9范围内查找,如果第一个出现E10的>或<,returning +1或- 1

示例 1

E1 = 6
E2 = 5
E3 = 5
E4 = 4
E5 = 6
E6 = 6
E7 = 5
E8 = 8
E9 = 8

If E10 = 8

结果为 -1,因为找到的第一个值小于 E10(从 E9 开始向上)

If E10 = 7

结果为 1,因为找到的第一个值大于 E10(从 E9 开始向上)

??

=VLOOKUP(2,1/((E1:E9>E10)-(E1:E9<E10));1)

或任何其他函数而不是 LOOKUP?

之前假定的解决方案工作正常

=VLOOKUP(2,1/((E1:E9>E10)-(E1:E9<E10));1)

但公式需要输入:

CTRL+SHIFT+ENTER

我试过使用 MATCH,但对我来说结果不能正常工作。

还有其他想法吗?

返回我的第一个函数:

=LOOKUP(2,1/((E1:E9>E10)-(E1:E9<E10)))

我已经将它组合起来,以了解它是如何工作的,并找到其他可能的解决方案。

  • 首先Excel将我的条件转换为TRUEFALSE

IF E10=8

=LOOKUP(2,1/((FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)-(TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE)))

  • 接下来它将 TRUEFALSE 转换为 10

=LOOKUP(2,1/((0,0,0,0,0,0,0,0,0)-(1,1,1,1,1,1,1,0,0)))

  • 接下来进行“-”操作得到:

=LOOKUP(2,1/(-1,-1,-1,-1,-1,-1,-1,0,0))

  • 接下来它转换成数组:

=LOOKUP(2,{-1,-1,-1,-1,-1,-1,-1,#Div/0!,#Div/0!},ROW(E1:E9))

  • 接下来也将ROW(E1:E9)转换成数组得到:

=LOOKUP(2,{-1,-1,-1,-1,-1,-1,-1,#Div/0!,#Div/0!},{1,2,3,4,5,6,7,8,9})

  • 总结从底部顶部的范围,搜索接近2的值,返回-1 因为 E7=5 小于 E10=8

所以现在,理解了Excel是如何阐述的,可以使用下面的函数来获取数组:

=INDEX(1/((E1:E9>E10)-(E1:E9<E10)),0)

结果相同:

{-1,-1,-1,-1,-1,-1,-1,#Div/0!,#Div/0!}

并使用先前的结果与 VLOOKUP 相结合,以获得与 LOOKUP 函数相同的结果,但接受它时没有 CTRL+SHIFT+ENTER 这是我的目标

=VLOOKUP(2,INDEX(1/((E1:E9>E10)-(E1:E9<E10)),0),1)