TRUE>"a" return TRUE ??? pourquoi

Bonjour à tous

Comme il s'agit de mon premier post j'en profite pour me présenter

Steeve, (quelle surprise après avoir vu mon pseudo ) Suisse, étudiant en ingénierie et sciences environnementales.

Voili voilou venons en au vif du sujet...

Je cherche à comprendre une incompréhension d'excel, une parmi tant d'autres me direz-vous

Pourquoi: =TRUE>"toto" return TRUE

= TRUE<"toto" return TRUE

Donc très certainement une conversion implicite la derrière mais la quelle? conversion en unicode? ascii? ou autre?

et pourquoi: =2<"toto" return TRUE

=2>"toto" return FALSE

Même question sur quel principe excel converti le int ou le string implicitement et en quoi pour effectuer cette comparaison?

Merci d'avance au plaisir de participer à ce forum à l'avenir que ce soit en question ou réponse

Bonne soirée à tous

Bonsoir et bienvenue sur le forum,

Tu peux poster le code qui te permet d'affirmer ceci ?

Car, True > "toto" est une incompatibilité de type !

Bonsoir,

je pense à l'ordre ASCII

où on a bien les chiffres avant les lettres donc <

pour ce qui est du VRAI ou du FAUX, je crois qu'Excel les gères en dernier...

Pour cela il faut regarder l'aide des fonctions comme RECHERCHE :

Les valeurs de l’argument vecteur_recherche doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHE peut renvoyer une valeur incorrecte. Les majuscules les et minuscules sont traitées indifféremment

@ bientôt

LouReeD

Theze a écrit :

Bonsoir et bienvenue sur le forum,

Tu peux poster le code qui te permet d'affirmer ceci ?

Car, True > "toto" est une incompatibilité de type !

l'incompatibilité de type je suis d'accord mais excel sait les traiter et pas toujours comme nous nous y attendons

exp: ="2"+2 return : 4 (int)

ou "2"&2 return : 22 (string)

et justement je ne comprends pas quelle conversion implicite excel effectue dans le cas de mon premier message.

Si tu veux vérifier tu peux ouvrir un classeur excel et tu y écris simplement True > "toto" tu pourras vérifier le résultat par toi même.

Personellement je m'attendais à #error ou #value mais Ca retourne bel et bien TRUE


LouReeD a écrit :

Bonsoir,

je pense à l'ordre ASCII

où on a bien les chiffres avant les lettres donc <

pour ce qui est du VRAI ou du FAUX, je crois qu'Excel les gères en dernier...

Pour cela il faut regarder l'aide des fonctions comme RECHERCHE :

Les valeurs de l’argument vecteur_recherche doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. Sinon, la fonction RECHERCHE peut renvoyer une valeur incorrecte. Les majuscules les et minuscules sont traitées indifféremment

@ bientôt

LouReeD

je vois ou tu veux en venir j'ai donc tenté ma chance avec

=22>"a"

2 donne 50 en ASCII

a 97 en ASCII

mais ça donne toujours = 22>"a" FALSe

22<"a" TRUE

Steeve18 a écrit :

je vois ou tu veux en venir j'ai donc tenté ma chance avec

=22>"a"

2 donne 50 en ASCII

a 97 en ASCII

mais ça donne toujours = 22>"a" FALSe

22<"a" TRUE

ce qui me parait tout à fait logique

22 converti en chaine de caractère est plus petit que a (le 2 venant avant le a)

en effet,

aa sera toujours avant b dans le dictionnaire !

même aaaaaaaaaaaaa devant b!

hahaha !

C'est le cas de le dire

@ bientôt

LouReeD

Bonsoir à tous,

TRUE : c'est la valeur booléenne ?

On va utiliser VRAI (ou le cas échéant FAUX) pour les valeur booléenne (en Excel FR). Et True ou False pour les résultats de comparaisons (pour distinguer).

Lors de comparaison, opérées au moyen des opérateurs de comparaison > ou <, Excel va classer les valeurs comparées dans l'ordre décroissant suivant :

  • Valeurs booléennes
  • Valeurs texte
  • Nombres
A l'intérieur de chaque type, pas de problème particulier :

=VRAI>FAUX renverra True

=VRAI<FAUX renverra False

="tata">"toto" renverra False

="tata"<"toto" renverra True

=""<"toto" renverra True

=1>2 renverra False

etc.

Mais lors de comparaisons entre valeurs de types différents :

=VRAI>"toto" renvoie True

=VRAI<"toto" renvoie False

=FAUX>"toto" renvoie True

=FAUX<"toto" renvoie False

=VRAI>2 renvoie True

=FAUX>2 renvoie True

=2>"toto" renvoie False

=2000000>"toto" renvoie False

=2>"" renvoie False

Attention, il s'agit d'Excel... VBA renverra une incompatibilité de type, ainsi que l'a signalé Theze.

Cordialement.

Bonsoir MFerrand !

Vous pouvez pas savoir comme je suis content d'être arrivé au même résultat que vous mais en inverse...

Les valeurs de l’argument vecteur_recherche doivent être placées en ordre croissant : ..., -2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI.

@ bientôt

LouReeD

Salut LouReed !

Riche idée ! Je n'avais pas pensé à le chercher là !!! (Moi qui ai passé autrefois un temps fou à des batteries de tests pour avoir un avis définitif sur la question... ! )

Bonne soirée.

Ca m'arrive parfois d'avoir de riches idées !

Merci à vous pour ce compliment !

@ bientôt

LouReeD

Rechercher des sujets similaires à "true return pourquoi"