2017-06-29 165 views
0

在我的Excel文件中,我有一些數據包含破折號-或整數。數據如下所示:Excel:字符串與整數比較等於TRUE,但爲什麼?

enter image description here

之後,我要檢查這些值是否比一些具體的參考整數更高。我用下面(清洗)INDEX語句來獲得單個值:

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

然後我比較基準值(位於DO$4在這種情況下),如果false如果爲true返回1,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

與多個字符串的比較不產品的錯誤 - 字符串(在這種情況下,在它的前面撇號的短劃線)被總是更大。

enter image description here

你可以把價值函數一輪的指數,因此將拋出一個錯誤,如果它試圖將字符串轉換

=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);"-") 

有是一個細微的差別 - 如果第一個公式遇到一個格式爲文本的數字,它會將其轉換爲數字,但第二個將它視爲文本。

+1

另外做數學可能像'+ 0'或'* 1'獲得錯誤; D –

+0

同意,謝謝@Dirk –