我有一个数组函数,它会查看标有Bike的工作表,如果他们没有离开日期,并且他们的年度金额不为零,则会提取他们的员工ID。
https://image.ibb.co/eTFooR/001.jpg
https://image.ibb.co/gzqUTR/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),"")}
这是为什么?
答案 0 :(得分:2)
AND
只返回一个结果,所以这部分
=AND((Bike!$D$2:$D$14=""),(Bike!$C$2:$C$14<>0))
将仅返回TRUE
- FALSE
否则
而
=(Bike!$D$2:$D$14="")*(Bike!$C$2:$C$14<>0)
返回一个包含13个值的数组,当该行的两个条件都为TRUE
时返回1,否则为0,例如0 {0;0;0;0;1;0;1;0;0;0;0;1;1}
由于上述AND
无法在这些数组公式中使用可靠(也不能OR
,因为这也会返回单个结果)。你会得到一个结果(不是错误)....但可能不是正确的
您可以通过将上述任一项放入单元格,然后按F2
然后按F9
查看生成的结果