如何从MIN公式Excel中排除0

时间:2013-05-15 22:23:44

标签: excel formula min

我需要知道如何从行中排除0并获得MIN值。

但我也需要排除F1 Cell。

例如:

A  B  C    D  E   F
1  0  18  20  0  150  = 18

但如果我这样做在excel中= MIN(A1,B1,C1,D1,E1)返回0。

感谢任何帮助。

10 个答案:

答案 0 :(得分:8)

在结果单元格中输入以下内容,然后按Ctrl&按住ENTER键切换:

=MIN(If(A1:E1>0,A1:E1))

答案 1 :(得分:7)

试试这个公式

=SMALL((A1,C1,E1),INDEX(FREQUENCY((A1,C1,E1),0),1)+1)

SMALL和FREQUENCY函数都接受“联合”作为参数,即用逗号分隔的单个单元格引用,并用括号括起来,如(A1,C1,E1)。

因此公式使用FREQUENCY和INDEX来查找范围内的零个数,如果加1,则得到k值,使得第k个最小值始终是不包括零的最小值。

我假设你没有负数......

答案 2 :(得分:7)

到目前为止,最有效的方法是使用SMALL和COUNTIF公式,如下所示;

SMALL返回数据集中第k个最小值。

=小(A1:A100,COUNTIF($ A $ 1:$ A $ 100,0)+1)

其中countif计算范围(+1)中的零,并用于告诉SMALL返回第k个最小值。

信用:link

答案 3 :(得分:2)

不完全确定你想要的是什么,但是如果你想要在范围内折扣空白单元格并传递零,那么这样就可以了;如果有点做作:

=MIN(IF(A1:E1=0,MAX(A1:E1),A1:E1))

使用Ctrl + Shift + Enter作为数组。

我在这里做的是用列表中的最大值替换零。

答案 4 :(得分:1)

如果你的所有值都是正值,你可以做-max(-n)

答案 5 :(得分:1)

所列解决方案对我而言并不完全有效。最接近的是Wiggum院长-我想对他的回答发表评论,但缺乏这样做的声誉。因此,我将其发布为单独的答案:

=MIN(IF(A1:E1>0;A1:E1))

然后不用按ENTER键,而是按CTRL + SHIFT + ENTER并看着Excel将{}分别添加到公式的开头和结尾(以激活数组上的公式)。 / p>

Chief Wiggum提出的逗号“,”和“ If”语句在Excel Home and Student 2013上不起作用。需要分号“;” 以及大写的“ IF”诀窍。语法上的差异很小,但是我花了1.5个小时才弄清楚为什么我得到一个错误和#VALUE。

答案 6 :(得分:1)

把我的帽子扔进戒指:

1)首先,我们对一组整数执行NOT函数, 将非零值评估为0,将零值评估为1

2)然后我们在原始整数集中搜索MAX

3)然后,将步骤1中生成的集合中的每个数字乘以步骤2中找到的MAX,将1设置为0,将0设置为MAX

4)然后将步骤3中生成的集合添加到原始集合中

5)最后,我们在步骤4中生成的集合中查找MIN

{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}

如果知道数字的大致范围,则可以用常量替换MAX(RANGE)。这样可以稍微加快速度,但仍不足以与更快的功能竞争。


还对5000个整数的数据集进行了快速测试,公式执行了5000次。

{=SMALL(A1:A5000,COUNTIF(A1:A5000,0)+1)}

1.700859秒已过| 5,301,902的抽搐过去了

{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}

1.935807秒已过去| 6,034,279的抽搐过去了

{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}

3.127774秒已过去| 9,749,865滴答滴答过去了

{=MIN(If(A1:A5000>0,A1:A5000))}

3.287850秒已过去| 10,248,852滴答声过去了

{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}

3.328824秒已过去| 10,376,576的抽搐过去了

{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}

3.394730秒已过去| 10,582,017滴答声过去了

答案 7 :(得分:0)

min()功能排除BOOLEAN和STRING值。 如果用""替换你的零。 (空字符串) - min()函数将按你的意愿完成它的工作!

答案 8 :(得分:0)

在 Microsoft 365 中您可以使用新功能 MINIFS

=MINIFS(A1:E1;A1:E1;">0")

给 1

=MINIFS(A1:E1;A1:E1;">1")

给 18

*替换; with , 如果使用英文版

答案 9 :(得分:-3)

您所要做的就是删除包含该单元格的单元格中的“0”,然后重试。这应该有用。