Excel的FALSE像是无限的吗?

为什么=FALSE<10000000000评估为FALSE=FALSE>10000000000评估为TRUE ? 我尝试了一些不同的数字,这似乎总是如此。

这是devise。 search“sorting疑难解答”的帮助以查看默认sorting顺序。

按升序排列,Microsoft Excel使用以下顺序。

数字:数字从最小的负数到最大的正数sorting。

字母数字sorting:对字母数字文本进行sorting时,Excel按字符逐个排列。 例如,如果单元格包含文本“A100”,则Excel将单元格放置在包含条目“A1”的单元格之后,并且包含条目“A11”的单元格之前。

包含数字的文本和文本按以下顺序sorting:

0 1 2 3 4 5 6 7 8 9(空格)! “#$%&()*,。/:;?@ [\] ^ _`{|}〜+ <=> ABCDEFGHIJKLMNOPQRSTU VWXYZ

忽略撇号(')和连字符( – ),但有一个例外:如果两个文本string除了连字符相同,则带连字符的文本最后sorting。

逻辑值:在逻辑值中,FALSE被置于TRUE之前。

错误值:所有错误值相等。

空白:空白总是放在最后。

默认sorting顺序很重要,因为这是如何deviseExcel来比较不同的数据types。 逻辑值总是在文本和数字之后。 错误值总是在那之后。 空白总是最后的。 当使用比较运算符(<,<=,=等)时,它使用与sorting相同的比较algorithm(或者更有可能的是,sortingalgorithm使用比较运算符代码,使它们相同)。

TRUE<>1根据sorting顺序,但是--TRUE=1 。 公式分析器认识到你正试图否定某件事情。 如果它是一个布尔值,它会将其转换为0或1.关于布尔值没有任何0或1或1,这只是内部types强制function的结果。 如果你键入--"SomeString"它做同样的事情。 它将string发送到types强制function,报告“无法强制”,并结束为#VALUE! 在牢房里。

这就是“为什么这样做”的答案。 我不知道“他们为什么这样devise”的答案。

布尔值TRUE / FALSE显然是不同的数据types的数字。 检查此( http://msdn.microsoft.com/en-us/library/office/bb687869.aspx )以查看布尔variables存储在2个字节(或任何短整数是为特定的体系结构)。 然而,这是存储数据的内存,因为excel实际上有一个布尔variables的特殊数据类。 具体来说:数字的xltypeNum,string的xltypeStr和我们讨论的xltypeBool。

相同的types之间的关系是清楚的,现在什么是<1000做? 可能没有什么意义 – 有用。

解决这个问题的方法:

 =ABS(BOOLEAN_VAR), ie =ABS(FALSE) --> 0 and =ABS(TRUE) --> 1 

要么

 =INT(BOOLEAN_VAR), ie =INT(FALSE) --> 0 and =INT(TRUE) --> 1 

要么

 =BOOLEAN_VAR*1, ie =FALSE*1 --> 0 and =TRUE*1 --> 1 

要么

 =+BOOLEAN_VAR, ie =+FALSE --> 0 and =+TRUE --> 1 

正如你所看到的那样,你强制excel输出一个数字types的数据,或者通过提供布尔函数或者在expression式中使用布尔variables。