我们先看上面的截图,在C5中的录入公式为“=IF(C2:C3="Mary",ROW(D2:D3))”(为数组公式),你知道它的返回值为什么是FALSE?这里就要理解一个概念,数组的大小的制约性。或许你不是很理解,下面我慢慢的讲解。
对于数组“=IF(C2:C3="Mary",ROW(D2:D3))”聪明的你可能已经想到这种类型的数组公式返回的是一个结果集,这个结果集的大小与操作对象的大小是一致的,在这里操作对象为C2:C3和D2:D3,因此返回值应该为两个元素。就样结果就出来了,由于C2=”John”,不满足条件,因此应该返回IF()函数的第三个参数值,但这里无第三个参数,所以系统返回FALSE;也就是说上面的截图中C5的返回值为FALSE.
对于数组大小的强制性来说:上面的数组“=IF(C2:C3="Mary",ROW(D2:D3))”返回值应该为两个,那么第二个值应该在哪里呢?我们继续考虑数组的执行过程:由于C3=”Mary”,满足条件,因此返回第二个参数值,即ROW(D2:D3),而C3对应的是D3,所以返回值应该为3。这个值应该在哪里呢?我们把C6的单元格也选择上录入数组公式:结果如下:
这里需要注意的是C5,和C6的公式是一致的,也就是说C5和C6共同构成了数组的单元,两个元素一个是”FALSE”一个是”3”。在上面的讲解中,我提到了在C5和C6中录入数组公式,不知道大家是否还知道数组公式的录入方法:请选择C5:C6,输入“=IF(C2:C3="Mary",ROW(D2:D3))”,按“Ctrl+Shift+Enter”。这是数组公式的录入方法,要注意的是此大小要与操作的数组结果大小相一致。
二 : 数组及数组公式的集合性
在上面的讨论中我们反复的讲了数组的特性,这里再讨论一下数组的集合性。因为数组是多个元素的集合,当然数组具有集合性。我们看下面的截图:在E5中录入下面的公式:“=MIN(IF(C2:C3="Mary",ROW(D2:D3)))”,按“Ctrl+Shift+Enter”,看结果。
这个结果当然就是在求MIN(FALSE,3)的值。在运算中FALSE的值是0,0和3的最小值是0,为什么返回的结果是3呢?好了,今日的这个问题大家可以先想一想,我在下面的数组专题中继续讲解。
今日内容回向:
1 什么是数组的制约性?
2 什么是数组的集合性?
3 上面的最小值为什么是3,而不是0呢?读者是如何理解的?