以下是引用goons在2007-6-26 10:23:05的发言:=IF({1},ROW(1:6),COLUMN(A1:C1))生成的是以下数组 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 而=IF({0},ROW(1:6),COLUMN(A1:C1))则生成以下数组 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 因此可以看出,当IF(logical_test,value_if_true,value_if_false)的 logical_test为单值数组时,结果数组的行数等于value_if_true的行数,列数等于value_if_true的列数 遗憾的是,目前还不知道这在内存数组构建上能有什么应用,也许在取行列数值时可以取代易失函数提高运算速度。
这是参数间数组元素对应计算的一种方式,这样也行 =IF(1,A1:B2,D1:D3)和=IF(0,A1:B2,D1:D3) IF函数的第二和第三参数如果是数组,那么在公式以数组公式形式输入时返回的就是数组了。相当于将第一个参数自动对应成数组,这和1+{1,2,3,4}={1,1,1,1}+{1,2,3,4}是一个原理,当一个单值同一个数组同时参与计算时,单值与数组中的每个元素都有对应关系,结果返回一个同样大小的数组。 再比如,{=SUM(IF(条件,A1:B2,C1:F2))},相当于用IF选取在两个区域中选择一个,这与CHOOSE的用法是一样的。关于CHOOSE函数的相关用法可见[数组的合并与置换] http://club.excelhome.net/viewthread.php?tid=92389&replyID=&skin=0
[此贴子已经被作者于2007-6-30 17:45:28编辑过] |