|
在数组公式中,参与运算的各个数组,要求具有相同的维度,各维度上也要求有相同的大小。
当参与运算的数组维度或大小不同,就要进行数组扩展。
数组扩展有两种方式:原值扩展、NA值扩展。
对于不同维度的数组,在新维度上进行原值扩展。
对于相同维度上因大小不同而进行的扩展,即原有维度上进行的扩展,将以#N/A值填充。
分析数组公式,关键是分析数组如何扩展!!!
对于数组公式 =SUM(IF(N(IF(1,A5:A10)),A5:A10)*{3;3;5;5;4;4})
IF(1,A5:A10)直接返回A5:A10,然后N(A5:A10)返回0,后面的不用说了,结果当然是0了。
而数组公式=SUM(IF(N(IF({1},A5:A10)),A5:A10)*{0;3;0;5;0;4}) 则不同
第一个参数{1}使用数组形式,就发生数组扩展。
公式的计算变成:
=SUM({
IF(N(IF(1,A5)),A5)*0;
IF(N(IF(1,A6)),A6)*3;
IF(N(IF(1,A7)),A7)*0;
IF(N(IF(1,A8)),A8)*5;
IF(N(IF(1,A9)),A9)*0;
IF(N(IF(1,A10)),A10)*4 })
然后:=SUM({0*0; 5*3; 0*0; 10*5; 0*0; 3*4 })
然后:=SUM({0; 15; 0; 50; 0; 12}) 最终等于77 |
|