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

发布于 2024-10-30 22:11:32 字数 197 浏览 1 评论 0原文

这是我的数组:

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

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

Here is the array I have:

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

It still returns zeroes with empty cells!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

慈悲佛祖 2024-11-06 22:11:32

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

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

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

You can use the ISBLANK() function to test for blank cells. IF cell A1 is blank, then =A1="" evaluates to true, and so does =A1=0

I don't know of an expression to return a blank value to a cell, so I use "" instead, like this:

=IF(ISBLANK([expression]), "", [expression])
当梦初醒 2024-11-06 22:11:32

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

作为数组公式,

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

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

Nest your conditions. You are trying to mashup IF criteria with (VALUE)*(TRUE/FALSE) and the when the TRUE/FALSE is FALSE, you are multiplying by zero. In this way, you are discarding blank cells but artificially seeding your result set with zeroes for every row where column D <> 'APRIL TOTALS'!A2.

As an array formula,

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

Array formulas need to be finalized with Ctrl+Shift+Enter↵ (but you already knew that!).

毁我热情 2024-11-06 22:11:32

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

只要E 列不包含零值,我就找到了解决此问题的方法。我对原始公式做了两个大的更改:

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

     {=IF(COUNT(IF('2011 年 4 月'!D3:D999='4 月总计'!A2,  
       IF('2011 年 4 月'!E3:E999>>"",'2011 年 4 月'!D3:D999)))=0,""  
       MIN(IF('2011 年 4 月'!E3:E999>>"",'2011 年 4 月'!E3:E999,10000000000)  
       *IF('2011 年 4 月'!D3:D999='四月总计'!A2,1,1000000000000)))}
    

The issue with your formula is that you are returning the minimum of an array of Boolean products. Because these are Boolean products, products with a FALSE multiplier (the ones you intend to exclude) are counted as 0.

I see a way around this as long as Column E contains no zero values. I've made two big changes to your original formula:

  1. To remove the Boolean multiplier problem, I've used an IF statement to choose multipliers instead of 1 and 0 for TRUE and FALSE. TRUE is still 1, but FALSE is now a large number -- make it larger than any value in Column E. This way, the blank entries will only be the minimum value if they are the only value.
  2. To take care of the case where the large number will be returned, I've made it such that the Minimum value is calculated only if there are non-blank values in Col E for Col D values = A2. If there are no such values, "" is returned.

     {=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)))}
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文