从 LOOKUP 函数到 VLOOKUP
from LOOKUP function to VLOOKUP
我正在尝试使用 VLOOKUP excel 函数而不是 LOOKUP。
我读过 VLOOKUP 优化得很好,但我无法调整它。
有什么帮助吗?
以下函数return:
- 1 如果满足的第一个条件是 >
- -1 如果满足的第一个条件是 <
=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将我的条件转换为TRUE和FALSE
IF E10=8
=LOOKUP(2,1/((FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)-(TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE)))
- 接下来它将 TRUE 和 FALSE 转换为 1 和 0
=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)
我正在尝试使用 VLOOKUP excel 函数而不是 LOOKUP。 我读过 VLOOKUP 优化得很好,但我无法调整它。 有什么帮助吗?
以下函数return:
- 1 如果满足的第一个条件是 >
- -1 如果满足的第一个条件是 <
=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将我的条件转换为TRUE和FALSE
IF E10=8
=LOOKUP(2,1/((FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)-(TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE)))
- 接下来它将 TRUE 和 FALSE 转换为 1 和 0
=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)