在我的Excel文件中,我有一些数据包含短划线-
或整数。数据如下:
接下来,我想检查这些值是否高于某个特定的参考整数。我使用以下(已清理的)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);"-")
答案 0 :(得分:1)
字符串与数字的比较不会产生错误 - 字符串(在这种情况下是前面有撇号的短划线)总是更大。
你可以在索引周围放置一个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);"-")
略有不同 - 如果第一个公式遇到格式化为文本的数字,它会将其转换为数字,但第二个公式会将其视为文本。