Quelqu'un peut-il expliquer le comportement d'Excel lors de l'évaluation de strings avec les opérateurs plus ou less que logiques? Quelques exemples:
=("ABC">"ABCD") #false =("ABC">1) #true =("ABC">"1") #true =("ABC">TODAY()) #true =("ABC">TRUE) #false =("ABC">BAHTTEXT(1)) #false
Ce que @thanhlvt a mentionné est juste. Cependant, pour comprendre le comportement étrange, il est important de comprendre que le comportement n'est pas vraiment bizarre – c'est la logique utilisée par Excel.
Lorsqu'une donnée non numérique est présente dans la comparaison, Excel applique essentiellement ses règles de sorting pour déterminer lequel est plus petit (vient en premier) et lequel est plus grand (vient ensuite) ou si les deux côtés correspondent (ils sont égaux).
Lors de l'exécution d'une sorte, Excel sortingomphe d'abord par le type de données puis dans le type de données . Il applique les règles de command ascendantes suivantes:
=UNICODE("xyz")
Maintenant, abordons l'exemple donné dans la question en utilisant les règles ci-dessus:
Argument | Result| Explanation -------------------|-------|----------------------------------------------- ="ABC">"ABCD" | FALSE | 1st 3 places are identical. In the 4th place, the 2nd part is > 1st part ="ABC"> 1 | TRUE | numbers have precedence over text ="ABC"> "1" | TRUE | ASCII/Unicode for numbers are from 48 to 57, and for alphabets it starts from 65 ="ABC">TODAY() | TRUE | Date is basically a number with 1/1/1900 being 1. Value of Jul 23, 2017 is 42,939 ="ABC">TRUE | FALSE | text characters have precedence over logical values ="ABC">BAHTTEXT(1) | FALSE | Unicode value of BAHTTEXT(1) (Thai) comes much later, ie at 3627
Note cependant, Excel n'applique pas la méthode EXACT
à cet effet et donc "abc" = "ABC"
aboutit à TRUE
.
À propos de la comparaison des strings, Excel se compare à partir du premier caractère. Par exemple:
"A" = "A" "AB" > "AA" "ABC" < "ABD"
Avec une comparaison de type de données différente, le résultat est:
Ssortingng > Number/Date Ssortingng < Boolean