Excel中使用数组公式的条件最大值 – 如何忽略空白行

关于在Excel中执行条件MIN和MAX的问题,有很多关于堆栈溢出的问题,比如Excel:在列中查找列中的最小值/最大值

但是,我不认为以下的问题。

通常情况下,MIN和MAX函数将忽略空白行,但是如果与条件数组公式一起使用,那么它们将不会被忽略。

例如

在这里输入图像说明

如果我input数组formula =MAX(IF(A1:A8="A",B1:B8))那么我得到零,当我真的想看到-1,因为所有非空白的“A”行,最大值是-1。

我认为下面的数组公式会起作用=MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))但总是返回零

你差不多了! 然而,在一个数组公式中,你不能简单地复制一个“AND”结构,本质上,因为AND函数的返回总是一个单一的值,而不是一个数组。

因此,你的尝试:

=MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))

最初会正确parsing为(使用您发布的值):

=MAX(IF(AND({TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE},{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE}),B1:B8))

虽然AND函数然后会查看这两个布尔TRUE / FALSE数组返回并返回单个值,即FALSE(因为在这16个条目中至less有一个为FALSE)。

正确的语法是:

=MAX(IF(A1:A8="A",IF(B1:B8<>"",B1:B8)))

问候

你可以在if中testing空白,如果find则replace适当的值。

数组公式=MAX(IF(A1:A8="a",IF(ISBLANK(B1:B8),-999,B1:B8)))将用值-999代替空白单元格,最大 – 根据你的数字得到多less来改变-999