根据最低标准

时间:2016-11-23 08:57:28

标签: excel excel-vba vba

我有以下Excel电子表格:

              A           B              C       D 
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))

此公式选择数组中的下一个最高数字 B列基于单元格 D3 中的输入。 例如: 如果单元格 D3 中的输入为 3 ,则会选择 4.99而不是2.99。 所有这些都与单元格 D3 中的公式完美配合。

但是,现在我想在此系统中插入最低标准 在单元格 D1 。 例如:如果最小值为6,则单元格 D3 中的公式应该注意到它 并选择7.99而不是4.99。

你知道如何解决这个问题吗? 有没有办法不使用数组公式呢?

2 个答案:

答案 0 :(得分:2)

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

所以在Cell D3中输入以下公式:

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

这意味着该公式正在搜索2个标准:

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

答案 1 :(得分:0)

使用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放入命名范围以缩短公式。