在使用MIN时如何排除0与IF?
我有一个工作簿2工作表, Sheet1
和Sheet2
。
Sheet1
有一个值(产品代码)查找,并填写一个空的单元格:
AB A100 A200 B150 C3AB
Sheet2
有一堆产品代码和成本:
AB A100 35 A100 14 A100 0 A200 10 A200 12 etc, etc, etc
我在Sheet1 B1中使用以下公式来查找Sheet2中的MIN匹配值:
=MIN(IF(Sheet2!$A$1:$A$5=A1,Sheet2!$B$1:$B$5))
我怎样才能排除返回0的匹配? 在产品A100的情况下,我想要返回最低的非零比赛,这将是14。
尝试在B1中将其作为数组公式提交
未经testing
=MIN(IF(((Sheet2!$A$1:$A$5=A1)*(Sheet2!$B$1:$B$5>0))>0,Sheet2!$B$1:$B$5))
我认为这将工作
如果在表1中添加C列并填写它,它会更快吗?
=IF(B1=0," ",B1)
那么你的原始公式input为matrix将工作引用列C,而不是:
=MIN(IF(Sheet2!$A$1:$A$5=A1,Sheet2!$C$1:$C$5))
任何人都可以评论添加另一列的速度? 这听起来像表有高达20000行。
arrays公式:
{=SMALL(IF(Sheet2!$B$1:$B$5<>0;IF(A3=Sheet2!$A$1:$A$5;Sheet2!$B$1:$B$5;"");"");1)}
Shift-Ctrl-在公式窗口中input要插入的内容,曲线括号由Excel插入,而不是由用户插入。
MIN
行为奇怪,发出0
也为数组中的非数字值。 SMALL
被用来代替#NUM!
错误的不存在的引用。
电子表格示例: http : //www.bumpclub.ee/~jyri_r/Excel/MInimal_value_excluding_0.xls
AFAIK:使用VBA循环访问值,或者:
使用类似于=IF(a1=0,"",A1)
的公式创build另一列(对于列A中的每个值,向下复制)。 然后你可以在这个列上使用min函数。
HTH