如何在Excel中表达NaN值?

时间:2013-03-29 13:45:08

标签: .net excel

我正在编写一个.NET程序,它生成一个在Excel中打开的XML文档。单元格通常如下所示:

    <ss:Cell>
      <ss:Data ss:Type="Number">123</ss:Data>
    </ss:Cell>

但偶尔我写的值有NaN,DIV / 0或INF。在这些情况下,123将被该文本值替换,Excel将不会因文本而打开文件。

我不认为Excel有常量,所以我不确定如何处理这种情况,而不是放入“-1”值。有什么建议吗?

1 个答案:

答案 0 :(得分:5)

以下是Excel了解的不同错误代码,以XML格式存储:

<Cell><Data ss:Type="Error">#DIV/0!</Data></Cell>
<Cell><Data ss:Type="Error">#NUM!</Data></Cell>
<Cell><Data ss:Type="Error">#VALUE!</Data></Cell>
<Cell><Data ss:Type="Error">#N/A</Data></Cell>
<Cell><Data ss:Type="Error">#NAME?</Data></Cell>
<Cell><Data ss:Type="Error">#REF!</Data></Cell>
<Cell><Data ss:Type="Error">#NULL!</Data></Cell>

只有前两个与您的问题相关,但为了完整起见,我添加了其他内容。

  

但偶尔我写的价值有NaN,DIV / 0或INF

DIV/0映射到#DIV/0!。我认为Excel中NaNINF之间没有区别,它们似乎都表示为#NUM!。例如,以下两个公式都生成#NUM!,即使第一个是无效数字,而第二个只是非常大。

=ASIN(2)
=EXP(EXP(10))

有趣,强硬几乎没用:Excel允许您将这些文字错误值(包括所有标点符号)输入到工作表上的单元格中而不会出现问题。从某种意义上说,这些内置常量。