Excel:使用INDEX数组公式来查找min和max之间的列表中的值
在Excel中,我有一个名称列表,每个名称都与它们相关联。
我也有一个最小值和最大值。
我想使用一个数组公式来查找列表中所有在最小值和最大值之间的名字。
首先,我创build了一个数组公式,find所有名称的值大于最小值的公式:
这在单元格D5中使用以下公式(复制到D10):
{=INDEX($A$1:$B$6,SMALL(IF($B$1:$B$6>=$E$1,ROW($B$1:$B$6)),ROW(1:1)),1)}
然后,我尝试修改此公式,以查找最小值和最大值之间的值的名称,如下所示:
{=INDEX($A$1:$B$6,SMALL(IF(AND($B$1:$B$6>=$E$1,$B$1:$B$6<=$E$2),ROW($B$1:$B$6)),ROW(1:1)),1)}
但它不起作用,请参阅下图:
我该如何解决这个问题? 我需要使用VBA吗?
将数组公式更改为:
=INDEX($A$1:$B$6,SMALL(IF(($B$1:$B$6>=$E$1)*($B$1:$B$6<=$E$2),ROW($B$1:$B$6)),ROW(1:1)),1)
数组公式由于某些原因不喜欢And
或Or
函数,但是可以用*
作为And
和+
来代替Or
。
这与TRUE / FALSE是布尔值的事实有关。 因此False = 0,True = 1,所以当值介于1 * 1 = 1或True时。 如果它大于或小于现存值,则为1 * 0 = 0或为假。