|
给你复制一段话:
N函数
N函数有两个特点,一个就是比较熟悉的数值转换
把TRUE转换成1,把FALSE转换为0,把文本转换为0
第二个特征是如果N函数的内部是引用的话,那么N函数会对引用区间起到两个作用,将引用区间变成数组,取引用区间中每个二维数据的第一个数值。从而可以让其他函数进一步运算。(一般函数只对本表维度的数据进行运算,忽略超出的维度)
第二个特点就比较抽象了。首先必须要明白什么是引用,什么是维数。
引用就不说了,说说维数:
1行为1维,1列为1维那么1张工作表及为2维。多张当然就是3维了。一般的数据计算都是2维运算,就是在当前工作表引用运算。(这里要强调一点引用单行单列比如A1:A2,A1:B1这个产生的也是一个二维的引用。如果你知道点VBA就知道了ARR=[A1:A2]那么对ARR取第一个值是ARR(1,1),所以你引用工作表上的单元格就是一个二维的引用或者讲带有二维的特性了)
那么什么是3维,4维。上面讲了多张工作表就是3维。还有就是用OFFSET对产生的引用如果偏移量或高度宽度是数组的话就产生了3维,4维或更多维数的引用。
举例吧:
A1=1,A1=2,A3=3,B1=4,B2=5,B3=6
=OFFSET(A1,{1,2},)
这就是个三维的引用,A1带有本工作表2维的特性,{1,2}这个数组又产生了1维。
那么用SUM直接求和就会得不到想要的结果。
这时候通过N函数将其转换为数组,每个二维数组取第一个数{2,3}结束就是5
=SUM(N(OFFSET(A1,{1,2},)))
=SUM({2,3})
=5
特别说明一下第二个特点只针对引用,像=SUM(N(A1:A100>0)))
A1:A100>0 生成了一个数组,N函数内是数组非引用,那么起用第一个特性。就是把TRUE变成1,FALSE变成0
另外就是有时我们进行多条件求和时,区域中有非数字,比如文本,我们想转换一下以免出现错误值,想用N进行转换,但是基于N的第二个特性达不到要求,那么可以生成一个3维的引用,或者变通一下。
比如:
A1=1,A2=2,A3=3,A4=4 B1=11,B2=22,B3=""(公式返回的),B4=44
=SUM((A1:A4>1)*B1:B4) 这个公式就不行了
当然=SUM((A1:A4>1)*N(B1:B4))也不行(原因见上)
那么可以用=SUM((A1:A4>1)*N(OFFSET(B1,{0;1;2;3},)))
或者=SUMPRODUCT(N(A1:A4>1),B1:B4)
N()返回一个区域的第一个元素,结果仍然是数组。
a1:c1是一个区域,所以n(a1:c1)只返回一个数。
对于四维以内的多维引用是由多个虚拟区域组成的,有多少个区域n()就返回多少的数字结果。
所以N可以将三维引用转换成一维数组,将四维引用转换为二维数组。
|
评分
-
3
查看全部评分
-
|