作业帮 > 综合 > 作业

EXCEL中有正负数,怎么实现只返回正数,而跳过负数

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 08:28:35
EXCEL中有正负数,怎么实现只返回正数,而跳过负数
随便的一串数字,有正有负,放在E2:E12,
下面的数组公式公式可以实现:只返回正数,
{=IFERROR(INDEX(E2:E12,SMALL(IF(E2:E12>0,ROW(INDIRECT("1:"&ROWS(E2:E12)))),ROW(INDIRECT("1:"&ROWS(E2:E12))))),"")|
.注:公式没有问题,为什么会得到想要的结果.
1、Small怎么可以实现结果中跳过负数,让下面的正数紧接在返回的数字下面;
2、ROW返回的不是行号吗?那么数组中是不是就会出现SMALL(1,1) ,SMALL(3,3)?
.
SMALL函数那里已经明白了,值总是1和0.先谢!
还是有个地方不太明白,为什么对应的负数那行会不显示,而不是遇到负数后空一行再显示后面的正数呢?
SMALL得到0,怎么会让后面的正数顶上来呢?
做了很久试验还是理解不透,我想这个可以代替很多的宏运算了.还望指教.
EXCEL中有正负数,怎么实现只返回正数,而跳过负数
这公式设计得很巧妙,妙在使用了数组公式.INDEX()函数用于返回区间E2:E12中指定位置的值,而这公式中只给出了指定的行号1或者0的值.行号由SMALL()函数提供,当条件E2:E12>0成立时,SMALL()函数结果是1,反之结果是0.条件语句IF(E2:E12>0,ROW(INDIRECT("1:"&ROWS(E2:E12))))只给出了两个参数,这里埋伏了一个错误的地方,就是当E2:E12
再问: 谢谢!!已经完全明白了。也分享一下 是用了SMALL来排序,而这里是对行号进行排序,而