使用数组公式 Excel 中的条件最大值 - 如何忽略空白行
Conditional Maximum in Excel using Array Formulae - how to ignore Blank Rows
Stack Overflow 上有很多关于在 Excel 中执行条件 MIN 和 MAX 的问题
例如Excel: Find min/max values in a column among those matched from another column
但是,我认为下面的问题没有被涵盖。
通常 MIN 和 MAX 函数会忽略空白行,但似乎如果与条件数组公式结合使用则它们不会忽略。
例如
如果我输入数组公式=MAX(IF(A1:A8="A",B1:B8))
然后我得到零,当我真的想看到-1时,因为在所有非空白'A'行中,最大值是-1。
我认为下面的数组公式可以工作 =MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))
但它总是 returns 零
您可以在 if 中测试空白,如果找到则替换为适当的值。
数组公式 =MAX(IF(A1:A8="a",IF(ISBLANK(B1:B8),-999,B1:B8)))
会将值 -999 替换为任何空白单元格,让您找到最大值 - 根据您的数字有多低更改 -999
你差一点就成功了!但是,在数组公式中,您不能如此直接地复制 "AND" 构造,本质上是因为 AND 函数中的 return 始终是单个值,而不是数组。
因此,您的尝试:
=MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))
最初会正确解析为(使用您发布的值):
=MAX(IF(AND({TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE},{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE}),B1:B8))
虽然 AND 函数随后会查看这两个布尔数组 TRUE/FALSE returns 和 return 一个单一值,即 FALSE(因为至少有一个 FALSE在这 16 个条目中)。
正确的语法是:
=MAX(IF(A1:A8="A",IF(B1:B8<>"",B1:B8)))
此致
Stack Overflow 上有很多关于在 Excel 中执行条件 MIN 和 MAX 的问题 例如Excel: Find min/max values in a column among those matched from another column
但是,我认为下面的问题没有被涵盖。
通常 MIN 和 MAX 函数会忽略空白行,但似乎如果与条件数组公式结合使用则它们不会忽略。
例如
如果我输入数组公式=MAX(IF(A1:A8="A",B1:B8))
然后我得到零,当我真的想看到-1时,因为在所有非空白'A'行中,最大值是-1。
我认为下面的数组公式可以工作 =MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))
但它总是 returns 零
您可以在 if 中测试空白,如果找到则替换为适当的值。
数组公式 =MAX(IF(A1:A8="a",IF(ISBLANK(B1:B8),-999,B1:B8)))
会将值 -999 替换为任何空白单元格,让您找到最大值 - 根据您的数字有多低更改 -999
你差一点就成功了!但是,在数组公式中,您不能如此直接地复制 "AND" 构造,本质上是因为 AND 函数中的 return 始终是单个值,而不是数组。
因此,您的尝试:
=MAX(IF(AND(A1:A8="A",B1:B8<>""),B1:B8))
最初会正确解析为(使用您发布的值):
=MAX(IF(AND({TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE},{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE}),B1:B8))
虽然 AND 函数随后会查看这两个布尔数组 TRUE/FALSE returns 和 return 一个单一值,即 FALSE(因为至少有一个 FALSE在这 16 个条目中)。
正确的语法是:
=MAX(IF(A1:A8="A",IF(B1:B8<>"",B1:B8)))
此致