首页 文章

Excel:使用INDEX数组公式在列表中查找最小值和最大值之间的值

提问于
浏览
1

在excel中,我有一个名称列表,每个名称都带有与之关联的值 .

我也有最小值和最大值 .

我想使用数组公式来查找列表中的所有名称,这些名称介于最小值和最大值之间 .

首先,我创建了一个数组公式,可以找到值大于最小值的所有名称:

这在单元格D5中使用了以下公式(向下复制到D10):

{=INDEX($A$1:$B$6,SMALL(IF($B$1:$B$6>=$E$1,ROW($B$1:$B$6)),ROW(1:1)),1)}

然后我尝试修改这个公式,在单元格F5中找到值与最小值和最大值之间的值,如下所示:

{=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吗?

1 回答

  • 3

    将数组公式更改为:

    =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)
    

    由于某些原因,数组公式不喜欢 AndOr 功能,但您可以使用 * for And+ for Or .

    这与TRUE / FALSE是布尔值的事实有关 . 因此False = 0且True = 1,所以当值介于1 * 1 = 1或True时 . 如果它大于或小于现存,那么它将是1 * 0 = 0或假 .

相关问题