0

这是我拥有的数组:

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

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

4

3 回答 3

0

您的公式的问题是您返回的是布尔产品数组中的最小值。因为这些是布尔产品,具有 FALSE 乘数的产品(您打算排除的产品)被计为 0。

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

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

     {=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)))}
    
于 2011-04-08T16:56:21.647 回答
0

您可以使用 ISBLANK() 函数来测试空白单元格。如果单元格 A1 为空白,则=A1=""计算结果为真,因此也是=A1=0

我不知道将空白值返回到单元格的表达式,所以我使用 "" 代替,如下所示:

=IF(ISBLANK([expression]), "", [expression])
于 2011-04-08T14:05:48.610 回答
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↵</kbd> (but you already knew that!).

于 2015-07-26T02:46:10.423 回答