根据最低标准在数组中select下一个更高的数字

我有以下Excel电子表格:

ABCD 1 0 0.99 Minimum: 6 2 1 0.99 Input: 3 3 2 2.99 Result: 4.99 4 3 2.99 5 4 4.99 6 5 4.99 7 6 7.99 8 7 7.99 9 8 9.99 10 9 9.99 

单元格D3中的公式是:

 =LARGE(B$1:B$10,COUNTIF(B$1:B$10,">"&D2)) 

此公式根据单元格D3中的input,select列B中arrays中次高的数字。 例如:如果单元格D3中的input是3 ,它将select4.99而不是2.99。 所有这些都与单元格D3中的公式完美配合。

不过,现在我想在D1单元格中插入一个最低标准。 例如:如果最小值是6,则单元格D3中的公式应该注意到它,并select7.99而不是4.99。

你有什么想法如何解决这个问题? 有没有办法做到这一点,而不使用数组公式?

您可以使用COUNTIFS来包含多个条件,而不是COUNTIF

所以在Cell D3中input下面的公式:

 =LARGE(B$1:B$10,COUNTIFS(B$1:B$10,">"&D2,B$1:B$10,">"&D1)) 

这意味着该公式正在寻找2个标准:

  1. 单元格值大于单元格D2( Input )中的值。
  2. 单元格值大于单元格D1中的值( Minimum )。

使用INDEX / MATCH可以限制所查看的范围,但我觉得有一个更好的方法:

=LARGE(INDEX($B:$B,MATCH($D$1,$A:$A,0)):INDEX($B:$B,COUNTA($A:$A)),COUNTIF(INDEX($B:$B,MATCH($D$1,$A:$A,0)):INDEX($B:$B,COUNTA($A:$A)),">"&$D$2))

您可以将INDEX / MATCH放在一个命名的范围内,使公式缩短。