Excel:字符串与整数比较等于TRUE,但为什么?

时间:2017-06-29 08:40:32

标签: excel string integer excel-2016 boolean-operations

在我的Excel文件中,我有一些数据包含短划线-或整数。数据如下:

enter image description here

接下来,我想检查这些值是否高于某个特定的参考整数。我使用以下(已清理的)INDEX语句来获取各个值:

INDEX($E6:$DL6;<Row>;<Column>)

然后我将其与参考值(在这种情况下位于DO$4)进行比较,如果为True则返回1,如果为False则返回0,并且如果错误则再次打印破折号。

=IFERROR(IF(<Indexed value>=DO$4;1;0);"-")

我认为比较"-">=DO$4会抛出该错误。但是,由于某种原因,if语句会生成1,这意味着比较为True

这样的比较怎么可能不会产生错误?写出的函数如下:

=IFERROR(IF(INDEX($E6:$DL6;1;<Column-indexer>)>=DO$4;1;0);"-")

1 个答案:

答案 0 :(得分:1)

字符串与数字的比较不会产生错误 - 字符串(在这种情况下是前面有撇号的短划线)总是更大。

enter image description here

你可以在索引周围放置一个VALUE函数,这样如果它试图转换字符串就会抛出错误

=IFERROR(IF(VALUE(INDEX($E6:$DL6;1;<Column-indexer>))>=DO$4;1;0);"-")

或者使用ISNUMBER

=IF(ISNUMBER(INDEX($E6:$DL6;1;<Column-indexer>)),if(INDEX($E6:$DL6;1;<Column-indexer>)>=DO$4;1;0);"-")

略有不同 - 如果第一个公式遇到格式化为文本的数字,它会将其转换为数字,但第二个公式会将其视为文本。