我想获取两个值之间的第一个单元格的值。 我能做的最好的事情就是得到第一个小于或大于某个值的单元格。我希望第一个单元格大于值且小于其他值。 这不起作用(因为它只有1个标准):
{=INDEX(A1:A10,MATCH(TRUE,A1:A10<B1,0))}
注意:A1:A10是值的范围,B1是比较
我试过了:
{=INDEX(A1:A10,MATCH(TRUE,and(A1:A10<B1,A1:A10>B2),0))}
但它不起作用。
感谢您的帮助。
答案 0 :(得分:1)
试试这个:
{=INDEX(A1:A10,MATCH(1,(A1:A10<B1)*(A1:A10>B2),0))}
请注意,这是一个数组公式,因此您不必撰写{}
,但在输入公式时,请使用Ctrl
+ {{1}执行此操作} + Shift
。
答案 1 :(得分:0)
答案 2 :(得分:0)
使用AGGREGATE¹ function代替MATCH将相对行位置返回到INDEX。
=INDEX($A$2:$A$11, AGGREGATE(15, 6, ROW($1:$10)/(($A$2:$A$11<$B$1)*($A$2:$A$11>$B$2)), ROW(1:1)))
这会强制不匹配的行号出现#DIV/0!
错误。 6 选项告诉AGGREGATE忽略错误。
由于这会使用AGGREGATE的SMALL,因此在填充ROW(1:1)
时,包含 k 参数将产生第二,第三等匹配。
请注意,我已将您的样本范围向下移动了一行。这样做是为了说明ROW(1:10)
是 A2中的位置:A11,而不是工作表上的实际行号。
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。