【问题标题】:Excel: Using INDEX array formula to find values in list between a min and maxExcel:使用 INDEX 数组公式在列表中查找最小值和最大值之间的值
【发布时间】:2016-06-17 00:45:59
【问题描述】:

在 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 吗?

【问题讨论】:

    标签: excel excel-formula vba


    【解决方案1】:

    将数组公式改为:

    =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 函数,但您可以使用* 来实现And+ 来实现Or

    这与 TRUE/FALSE 是一个布尔值有关。因此 False = 0 和 True = 1,因此当值介于两者之间时,它是 1*1=1 或 True。如果它大于或小于现存的它将是 1*0=0 或假。

    【讨论】:

    • 所以你将它们相乘而不是使用AND? excel的奥秘总是让我大吃一惊。
    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 1970-01-01
    • 2018-05-03
    • 2021-09-15
    • 1970-01-01
    相关资源
    最近更新 更多