MAXdate值在2个条件范围内

为了方便起见

+---+----+-------------+ | | A | B | +---+----+-------------+ | 1 | xx | 12-05-2015 | | 2 | xx | 15-05-2015 | | 3 | yy | 13-05-2015 | | 4 | yy | 16-05-2015 | +---+----+-------------+ 

(今天是14-05-2015)

只有在今天之前,我才需要获取每个“A”值的MAXdate值。 如果不是,则移至第二大值。 情况下,它没有find,空细胞。

到目前为止我所做的是:

 =MAX($A$1:$A$4='xx';$B$1:$B$4<TODAY();$B$1:$B$4) 

并用SHIFT + CTRL + ENTER确认

我得到的错误是,它产生xx的最大值13-05-2015,这显然是错误的(好像它不考虑$A$1:$A$4='xx'

你需要使用嵌套的if函数。 即改变你的公式为:

 {=MAX(IF($A$1:$A$4="xx", IF($B$1:$B$4<TODAY(), $B$1:$B$4)))} 

并用Ctrl + Shift + Enter结束

一个标准( 非数组 )公式替代。

 =MAX(INDEX((B:B)*(A:A="xx")*(B:B<TODAY()), , )) 

MAX日期如果条件

这个公式将从单元格的范围从全列减less到更接近可用数据范围的好处。

如果您的date按照示例中所示升序排列,那么您可以使用LOOKUP如下所示:

=LOOKUP(2,1/(A$1:A$100="xx")/(B$1:B$100<TODAY()),B$1:B$100)

不需要“数组input”