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。