2012-08-02 21 views
2

有人可以提供一個參考,瞭解如何使用Excel中的不等式運算符比較字符串的方式嗎?我發現了一些意想不到的行爲:字符串比較在Excel中使用不等式

在下面的示例中,前兩列是字符串,C列的表達式爲=A2<B2,第三列是預期行爲,最後一列是預期行爲是否與實際。

Comparison Benchmark Is A < B? Expected Pass? 
Q1 2009  Q4 2012  TRUE  TRUE  TRUE 
Q2 2009  Q4 2012  TRUE  TRUE  TRUE 
Q3 2009  Q4 2012  TRUE  TRUE  TRUE 
Q4 2009  Q4 2012  TRUE  TRUE  TRUE 
Q1 2010  Q4 2012  TRUE  TRUE  TRUE 
Q2 2010  Q4 2012  TRUE  TRUE  TRUE 
Q3 2010  Q4 2012  TRUE  TRUE  TRUE 
Q4 2010  Q4 2012  TRUE  TRUE  TRUE 
Q1 2011  Q4 2012  TRUE  TRUE  TRUE 
Q2 2011  Q4 2012  TRUE  TRUE  TRUE 
Q3 2011  Q4 2012  TRUE  TRUE  TRUE 
Q4 2011  Q4 2012  TRUE  TRUE  TRUE 
Q1 2012  Q4 2012  TRUE  TRUE  TRUE 
Q2 2012  Q4 2012  TRUE  TRUE  TRUE 
Q3 2012  Q4 2012  TRUE  TRUE  TRUE 
Q4 2012  Q4 2012  FALSE  FALSE  TRUE 
Q1 2013  Q4 2012  TRUE  FALSE  FALSE 
Q2 2013  Q4 2012  TRUE  FALSE  FALSE 
Q3 2013  Q4 2012  TRUE  FALSE  FALSE 
Q4 2013  Q4 2012  FALSE  FALSE  TRUE 
Q1 2014  Q4 2012  TRUE  FALSE  FALSE 
Q2 2014  Q4 2012  TRUE  FALSE  FALSE 
Q3 2014  Q4 2012  TRUE  FALSE  FALSE 

爲基準日期之前,看起來像Excel中的整個字符串比較,而基準日之後,僅Excel,直到找到一個字符不是在比較類似的人物比較少的字符串。

回答

4

Excel在這裏執行的操作是將兩個字符串按字符從左到右進行比較,直到發現不匹配,然後具有較高值字符的字符串變爲較大的字符串。這是比較字符串的標準方法 - 它幾乎用於所有編程語言,數據庫和其他軟件包。

因此,例如,在第一線進行比較會是這樣的:

Comparison Benchmark Outcome 
    Q   Q  Equal 
    1   4  Benchmark is greater - done comparing 
[space]  [space]  Ignored 
    2   2  Ignored 
    0   0  Ignored 
    0   1  Ignored 
    9   2  Ignored 

對於第四行那就是:

Comparison Benchmark Outcome 
    Q   Q  Equal 
    4   4  Equal 
[space]  [space]  Equal 
    2   2  Equal 
    0   0  Equal 
    0   1  Benchmark is greater - done comparing 
    9   2  Ignored 

而最後一行將是:

Comparison Benchmark Outcome 
    Q   Q  Equal 
    3   4  Benchmark is greater - done comparing 
[space]  [space]  Ignored 
    2   2  Ignored 
    0   0  Ignored 
    1   1  Ignored 
    4   2  Ignored 
+0

同意。你可以使用function = code(textcharacter)來看到每個文本字符的ascii(實際上是ansi)值。例如=代碼( 「a」)的 – Stepan1010 2012-08-02 21:46:47