EXcel函数,N(IF({1},$B$1:$Z$1)) 这个是什么意思?求详解。谢谢!

2024-12-17 15:39:21
推荐回答(1个)
回答1:

这是INDEX函数的其中一部分吧?
=N(IF({1},$B$1:$Z$1))
  或
=N(IF(1,$B$1:$Z$1))
  得到的其实是一个我们称之为“内存数组”的东西, 单独使用没有什么意义
  如:
=N(IF({1},ROW(A1:A3)))
  这个公式返回值是 !VALUE!
  但按F9计算它时, 它实际是一个数组: {1;2;3}
  当前面用其它函数引用它时, 如
=SUM(N(IF({1},ROW(A1:A3))))
按 Ctrl+shift+回车 三键结束
  该公式的值则显示为 6 , 即 相当于 SUM(1,2,3)
  由于INDEX、VLOOKUP等一些函数比较例外, 比如
=INDEX(A1:A10,{1;2;3})
  不能得到3行1列的内存数组而下面这个公式
=INDEX(A1:A10,N(IF({1},{1;2;3})))
  却可以, 也就是说N(IF(1,数组))可以突破INDEX那个限制. 根据计算步骤, N(IF(1,{1;2;3})) 得到的就是{1;2;3},缺了N或IF都不能让INDEX得到内存数组. 至于什么原因还不知道,或许函数本身设计就是这样.
能想到的就这么多, 表达能力不行, 期待高手纠正补充.
  啰嗦了这么多, 忘了正题:
=N(IF({1},$B$1:$Z$1))
  返回的是一列数值
  如果是:
=N(IF({1;1;1},$B$1:$Z$1))
  返回的就是三列数值了