我需要忽略 excel 2007 MIN 数组中的空白单元格,但我不断得到 0

问题描述 投票:0回答:3

这是我的数组:

{=MIN(IF('APRIL 2011'!E3:E999<>"",'APRIL 2011'!E3:E999  
 *('APRIL 2011'!E3:E999*('APRIL 2011'!D3:D999='APRIL TOTALS'!A2))))}  

它仍然返回带有空单元格的零!

excel excel-2007 worksheet-function array-formulas
3个回答
0
投票

您可以使用 ISBLANK() 函数来测试空白单元格。如果单元格 A1 为空白,则

=A1=""
的计算结果为 true,
=A1=0

也是如此

我不知道有什么表达式可以将空白值返回到单元格,所以我使用“”代替,如下所示:

=IF(ISBLANK([expression]), "", [expression])

0
投票

嵌套你的条件。您正在尝试将 IF 条件与 (VALUE)*(TRUE/FALSE) 混搭,并且当 TRUE/FALSE 为 FALSE 时,您将乘以零。通过这种方式,您将丢弃空白单元格,但人为地将 D 列 <> 'APRIL TOTALS'!A2 的每一行的结果集都置零。

作为数组公式,

=MIN(IF('APRIL 2011'!E3:E999<>"", IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2, 'APRIL 2011'!E3:E999)))

数组公式需要使用 Ctrl+Shift+Enter↵ 来完成(但你已经知道了!)。


0
投票

您的公式的问题是您返回的是布尔乘积数组的最小值。因为这些是布尔乘积,所以乘数为 FALSE 的乘积(您打算排除的乘积)将计为 0。

我看到了解决这个问题的方法,只要E 列不包含零值。我对你原来的公式做了两个大的改变:

  1. 为了消除布尔乘数问题,我使用 IF 语句来选择乘数,而不是 TRUE 和 FALSE 的 1 和 0。 TRUE 仍然是 1,但 FALSE 现在是一个很大的数字 - 使其大于 E 列中的任何值。这样,如果空白条目是唯一值,则它们只是最小值。
  2. 为了处理返回大数字的情况,我将其设置为仅当 Col D 值 = A2 的 Col E 中存在非空白值时才计算最小值。如果没有这样的值,则返回“”。

     {=IF(COUNT(IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,  
       IF('APRIL2011'!E3:E999<>"",'APRIL2011'!D3:D999)))=0,""  
       MIN(IF('APRIL2011'!E3:E999<>"",'APRIL2011'!E3:E999,10000000000)  
       *IF('APRIL 2011'!D3:D999='APRIL TOTALS'!A2,1,1000000000000)))}
    
© www.soinside.com 2019 - 2024. All rights reserved.