关于EXCEL N函数

N 函数能否构成数组,比如 =SUM(N(A1:A100))能否成立
2024-11-24 23:44:08
推荐回答(5个)
回答1:

首先这个公式肯定达不到你想要的目的的。
这个公式最后的结果就是=N(A1)

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))=SUM(N(A1))

特别说明一下第二个特点只针对引用,像=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)

回答2:

其错误有几个:

1、left函数(字符串,截取个数而不是位置)

2、希望通过字符乘以数来获得数值模式,思路有问题

解决办法:

公式:=IF(ISERROR(FIND("分",B8,1)),MIDB(B8,1,FIND("秒",B8,1)-1),MIDB(B8,1,FIND("分",B8,1)-1)*60+MIDB(B8,FIND("分",B8,1)+1,FIND("秒",B8,1)-1))

截图:

回答3:

不能,只能判断A1单元格是不是数字,如果是数值形式的数字,就显示它,如果不是,那为0.

如果你是想合计A1:A100中所有数字,不管是不是数值格式的话,那就要用以下的公式
{=sum(value(a1:a100))}

一定要注意,是数组公式。

回答4:

在公式中一般不使用 N 函数,因为 Microsoft Excel 会在必要时自动转换数值。这项函数与其他试算表程式相容。

回答5:

测试了一下,=SUM(N({TRUE,"hehe",3,4})) 显示为8,其中true算为1,文本hehe为0。数组大括号里不支持单元格引用
如果是因为A1-A100中有文本类型影响求和的话 可以用istext函数判断一下
或者用=A1*1的方式强制转换为数值型