1 votes

Le calcul des chaînes de caractères dans Excel fonctionne... parfois

J'ai trouvé beaucoup de réponses partielles à cette question mais soit je ne les mets pas en œuvre correctement, soit elles ne correspondent pas vraiment à mon problème. J'ai une colonne et dans chaque cellule il y a deux nombres séparés par un deux-points. Chaque nombre peut comporter un ou deux chiffres. (Exemples : 1:1, 1:2, 12:10, 12:20, etc.) J'ai besoin d'interroger la cellule et de retourner une chose si le nombre à gauche du deux-points est inférieur au nombre à droite, et de retourner autre chose si le nombre à gauche est supérieur ou égal au nombre à droite. J'ai des calculs pour extraire les nombres de chaque côté des deux points :

=LEFT(E2,FIND(":",E2)-1)

et à droite du colon :

=MID(E2,FIND(":", E2)+1,LEN(E2))

Dans cet exemple, les chiffres avec les deux points sont dans la cellule E2. J'ai un autre calcul pour comparer les deux nombres et renvoyer le résultat souhaité :

=IF((LEFT(E2,FIND(":",E2)-1))<(MID(E2,FIND(":",E2)+1,LEN(E2))),"Divider, ","Combiner, ")

L'idée est de renvoyer "Diviseur" si le nombre à gauche des deux points est inférieur au nombre à droite, et de renvoyer "Combinateur" si le nombre à gauche est égal ou supérieur.

Ce qui me frustre, c'est que les calculs pour extraire les nombres de part et d'autre des deux points fonctionnent, et que le calcul pour déterminer lequel est le plus grand échoue uniquement lorsque le premier chiffre du côté gauche des deux points est plus petit que le nombre du côté droit, même si le nombre du côté gauche a un deuxième chiffre et est donc plus grand. Par exemple, pour 12:3, il renvoie "Diviseur", alors que 12 est plus grand que 3 et qu'il devrait renvoyer "Combineur". Mais je sais qu'il voit les deux chiffres de 12, car mon équation pour extraire le nombre de gauche fonctionne.

J'apprécie beaucoup toute suggestion. Merci. --Dan Littman

1voto

Scott Craner Points 20779

C'est parce que LEFT,MID,RIGHT renvoient une chaîne de caractères et que "3" est supérieure à "12" comme le texte va caractère par caractère.

Vous devez changer les chiffres en nombres, le -- fait ça :

=IF((--LEFT(E2,FIND(":",E2)-1))<(--MID(E2,FIND(":",E2)+1,LEN(E2))),"Divider, ","Combiner, ")

1voto

MJH Points 1095

Enveloppez votre LEFT y MID des appels de fonction dans un VALUE appeler :

=IF((VALUE(LEFT(E2,FIND(":",E2)-1)))<VALUE((MID(E2,FIND(":",E2)+1,LEN(E2)))),"Divider, ","Combiner, ")

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X