如何从最小公式Excel中排除0
我需要知道如何从行中排除0并获得最小值 但我还需要排除F1细胞 例: 但如果我在excel中使用=MIN(A1,B1,C1,D1,E1)执行此操作,则返回0如何从最小公式Excel中排除0,excel,formula,min,Excel,Formula,Min,我需要知道如何从行中排除0并获得最小值 但我还需要排除F1细胞 例: 但如果我在excel中使用=MIN(A1,B1,C1,D1,E1)执行此操作,则返回0 非常感谢您的帮助。在结果单元格中输入以下内容,然后在按Enter键的同时按Ctrl&Shift键: =MIN(If(A1:E1>0,A1:E1)) 试试这个公式 =小((A1,C1,E1),索引(频率((A1,C1,E1),0),1)+1) SMALL函数和FREQUENCY函数都接受“并集”作为参数,即单单元格引用由逗号分隔,并用
非常感谢您的帮助。在结果单元格中输入以下内容,然后在按Enter键的同时按Ctrl&Shift键:
=MIN(If(A1:E1>0,A1:E1))
试试这个公式
=小((A1,C1,E1),索引(频率((A1,C1,E1),0),1)+1)
SMALL函数和FREQUENCY函数都接受“并集”作为参数,即单单元格引用由逗号分隔,并用括号括起来,如(A1、C1、E1)
因此,公式使用频率和索引来找到一个范围内的零的数量,如果加上1,则得到k值,使得第k个最小值始终是除零以外的最小值
我假设你没有负数…不完全确定你想要的是什么,但是如果你想打折范围内的空白单元格并传递零,那么这就可以了;如果有点做作:
=MIN(IF(A1:E1=0,MAX(A1:E1),A1:E1))
使用Ctrl+Shift+Enter作为数组
我在这里所做的是用列表中的最大值替换零。如果所有值都为正值,则可以执行-max(-n)到目前为止,最有效的方法是使用如下所示的SMALL和COUNTIF公式 SMALL返回数据集中的第k个最小值 =小型(A1:A100,COUNTIF($A$1:$A$100,0)+1) 其中,countif对范围(+1)内的零进行计数,并用于告诉SMALL返回第k个最小值 信用证:min()功能排除布尔值和字符串值。
如果将零替换为“”(空字符串),则-min()函数将根据您的喜好执行其工作 您所要做的就是删除仅包含该内容的单元格中的“0”,然后重试。这应该行得通。列出的解决方案并不完全适合我。最接近的是维古姆酋长——我想对他的回答发表评论,但缺乏这样做的声誉。因此,我将其作为单独的答案发布:
=MIN(IF(A1:E1>0;A1:E1))
然后,不要按ENTER键,而是按CTRL+SHIFT+ENTER键,观察Excel将{
和}
分别添加到公式的开头和结尾(以激活数组中的公式)
首席Wiggum提议的逗号“,”和“如果”语句在Excel Home和Student 2013上不起作用需要一个分号“;”以及全大写“IF”来完成这个任务。语法差异很小,但我花了1.5个小时才弄明白为什么会出现错误和#值。我很生气: 1) 首先我们对一组整数执行NOT函数, 将非零求值为0,将零求值为1 2) 然后我们搜索原始整数集中的最大值 3) 然后,我们将步骤1中生成的集合中的每个数字乘以步骤2中找到的最大值,将1设置为0,将0设置为最大值 4) 然后我们将步骤3中生成的集合添加到原始集合中 5) 最后,我们在步骤4生成的集合中查找最小值
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
如果你知道数字的大致范围,你可以用一个常数代替最大范围。这稍微加快了速度,但仍不足以与更快的功能竞争
还对5000个整数的数据集进行了快速测试,公式执行了5000次
{=SMALL(A1:A5000,COUNTIF(A1:A5000,0)+1)}
1.700859秒|
5301902个滴答声过去了
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}
1.935807秒|
6034279个滴答声过去了
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}
3.127774秒|
9749865个滴答声过去了
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}
3.287850秒|
10248852个滴答声过去了
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}
3.328824秒|
经过10376576次滴答声
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}
3.394730秒|
10582017Hi@JamesBlond,这个公式没问题,但我只需要选择A1,C1,E1。非常感谢。这有点复杂,我会使用DMIN()函数。在这里查看e非常详细的描述:如果您想要A1、C1和E1中的最小值,但不包括零,答案不是1吗?-请看我的答案。这实际上是一个答案——它对你有用,可以理解,其他人可能会觉得它有用。所以,干得好。在这里,有一个向上投票,让你开始有足够的代表评论时,评论是正确的:)感谢向上投票和支持的态度。真的很感激!:)我完全同意@芭丝谢芭发现使用NOT代替=可以稍微改善一些情况……但仍然不足以使用最快的方法
{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}
{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}
{=MIN(If(A1:A5000>0,A1:A5000))}
{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}
{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}