N 函数
本文将说明 Microsoft Excel 中N函数的公式语法及使用方式。
描述
传回转换为数字的值。
语法
N(value)
N 函数语法具有下列自变量:
Value必要。这是您想要转换的数值。N 函数可以转换下列表格中的数值。
如果VALUE为以下项目或参照至 | N传回 |
数字 | 该数字 |
日期,Microsoft Excel 内建的日期格式之一 | 该日期的序列值 |
TRUE | 1 |
FALSE | 0 |
错误值,如 #DIV/0! | 错误值 |
其他 | 0 |
批注
在公式中一般不使用 N 函数,因为 Microsoft Excel 会在必要时自动转换数值。这项函数与其他电子表格程序兼容。
Excel 以连续的序列值来储存日期,以至于它可以执行计算。依默认值,1900 年 1 月 1 日是序列值 1,而2008 年 1 月 1 日则是序列值 39448,因为这是1900 年 1 月 1 日之后的第 39,448 天。Macintosh 使用不同的 MicrosoftExcel 默认日期系统。
范例
请将范例复制到空白的工作表,以便了解范例内容。
選取本文中的範例。
重要事項請勿選取列或欄標題。
從 [說明] 中選取範例
按下 CTRL+C 鍵。
在 Excel 中建立空白的活頁簿或工作表。
在工作表中,選取儲存格 A1,並按下CTRL+V 鍵。
重要事項若要讓範例正確運作,您必須將它貼入工作表的儲存格A1 中。
如果要在檢視結果與檢視傳回結果的公式之間切換,請按下 CTRL+` (重音符),或是在[公式]索引標籤的[公式稽核]群組中,按一下[顯示公式]按鈕。
將範例複製到空白的工作表之後,可以修改它以符合您的需求。
A | B | |
1 | 资料 | |
2 | 7 | |
3 | Even | |
4 | TRUE | |
5 | 4/17/2008 | |
6 | 公式 | 描述(结果) |
7 | =N(A2) | 因为 A2 中有数字,因此传回 7 (7) |
8 | =N(A3) | 因为 A3 中有文字,因此传回 0 (0,请参阅上述) |
| =N(A4) | 因为 A4 是逻辑值 TRUE,因此传回1 (1,请参阅上述) |
| =N(A5) | 因为 A5 是日期,因此会传回序号 (会随使用的日期系统而改变) |
11 | =N("7") | 因为 "7" 是文字,因此传回 0 (0,请参阅上述) |
在Excel工作表函数中,N函数可以将单元格中不是数值形式的值转换为数值形式。N函数的语法为:
N(value)
Value为要转化的值。
此外,N函数还可以将TRUE转换成1,将FALSE转换成0,将除错误值外的其他值转换为0。如下图:
下面是使用N函数的两个例子。
1.将日期转换为序列值,将时间转换为小数。
例如A1单元格中包含时间“2009年11月19日”,在B1单元格中输入公式:
=N(A1)
将返回数值40136,即“2009年11月19日”的序列值。
2.将文本转换成0。
利用这一点,我们可以在公式中插入说明文字(注释),如返回某日期处于当年第几周的公式:
=INT((A1-DATE(YEAR(A1),1,0)+WEEKDAY(DATE(YEAR(A1),1,0),1)+7-WEEKDAY(A1,1))/7)+N("返回A1单元格日期处于当年第几个周")
如果A1单元格中为日期“2009年11月19日”,上述公式将返回数值47,因为此时N函数返回0。
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)