Opérateur de comparaison de chaîne de caractère

Bonjour,

Pour Excel 2010 :

("000+000">"000-000")=FAUX

MAIS

("+">"-")=VRAI

Est-ce que quelqu'un saurait m'expliquer ce que fait Excel quand il compare des chaînes de caractère ? Je pensais que chaque caractère avait un sorte de numéro bien précis, ce qui lui permet de trier par ordre alphabétique, mais l'exemple que je vous donne me laisse perplexe.

Merci d'avance

bonjour

parce que c'est le CNUM du premier 0 qui compte

cordialement

Merci tulipe_4

Donc si je comprends bien Excel convertit d'abord les nombres de type chaîne en type nombre ? (Pour quoi faire ? Parce que traiter des chaînes c'est plus long ?)

Il compare donc 000 & "-"& 000 et 000 & "+"& 000 (si ceci a un sens) ?

Navré, mais ça ne m'explique pas tout. Il faudra bien un moment qu'il compare le + et le - ? (ou alors quelque chose m'échappe)

re

je ne vois pas ça comme ça

dans ta premiere identité exel te dit

le cnum du premier 0 n'est pas >au Cnum de l'autre chaine de 0

cordialement

tulipe_4 a écrit :

dans ta premiere identité exel te dit

Comment ça ? Il y a moyen de décortiquer le calcul d'Excel quelque part ? Si oui, ça m'intéresse (Je connais "Evaluation de formule" mais je ne crois pas qu'Excel aille jusque là avec ce module...)

tulipe_4 a écrit :

dans ta premiere identité exel te dit

le cnum du premier 0 n'est pas >au Cnum de l'autre chaine de 0

Donc Excel compare CNUM ("0") et CNUM("000-000") ?

On sait que :

CNUM("0")=0

et

CNUM("000-000")=#VALEUR

Donc Excel compare 0 et #VALEUR ?

Je ne comprends pas l'intérêt.

En tout cas :

("000+000"<"000+110")=VRAI

et

("000+210"<"000+110")= FAUX

Tout ce que je veux c'est pouvoir trier par ordre alphabétique cette liste ["000-123";"000+120";"000+125";020+255] mais le tri d'Excel met les chaînes avec des "+" avant les chaînes avec des "-" (alors que "+">"-"=VRAI).

C'est bien des chaînes de caractère que je veux comparer, pas les nombres qui sont à l'intérieur.

Du coup, j'étais curieux de savoir comment Excel traitait ces chaînes de caractère.

En tout cas, j'ai l'impression qu'une macro s'impose...

re

pas de panique

fait une maquette de ce tu as (10lignes ) ;on verra bien

cordialement

Pour la macro je sais me débrouiller, j'aurais juste aimé savoir comment était codée la comparaison pour des chaînes de caractère.

Si personne n'a de réponse, je clos le sujet

Bonjour, Salut à tous,

Attention à ne pas confondre les priorités de calcul sur les opérateurs de calcul et les chaines de caractères qui sont valorisées selon leur numéro de code ascii. D'où ce n'est pas le même tri.

Salut et merci Raja,

Ah en effet, le code ascii de + est 43, celui de - est 45. Partant de là, on a bien "000+000"<"000-000".

Du coup quand on compare "+" et "-" tous seuls, j'ai pas bien compris, il compare quoi exactement ?

Re,

As-tu regardé mon fichier ? Il y a une priorité prévue pour les opérateurs de calculs. Je suis persuadé qu'ils sont triées par cette priorité.

Oui j'ai regardé ton fichier, les opérateurs seuls sont triés différement et ça m'intrigue ! Ça veut dire qu'ils ont un type et/ou un code bien à eux ? Allez je clos le sujet. Merci à vous deux pour vos réponses !

Rechercher des sujets similaires à "operateur comparaison chaine caractere"