Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Problème de signe <>

Nachos

XLDnaute Nouveau
Bonjour a tous,
J'aimerais declencher la condition de mon si qui est =SI(ET(DROITE(D1;1)="M";STXT(D1;DROITE(D1;3);1)<>".");STXT(D1;-3;2);"Probleme") cependant il m'affiche une erreur #VALEUR. Si quelqu'un de charitable pourrais m'aider ca serais super ! j'ai remarquer que ca bloquer uniquement sur la deuxieme condition du ET() jai beau ne pas avoir de point dans ma chaine de caractere il n'y arrives pas !
Merci d'avance !
 

Fred0o

XLDnaute Barbatruc
Bonjour nachos, Rouge

Je ne suis pas sur d'avour tout compris et un fichier exemple avec des donnees anonymes permettrait de mieux comprendre ton besoin.

A tout hasard, tu peux essayer ceci :
Code:
=SI(ET(DROITE(D1;1)="M";STXT(D1;NBAR(D1)-2;1)<>".");STXT(D1;NBCAR(D1)-2;2);"Probleme")

Comme l'a fait remarquer Rouge, la formulation de STXT pose problème. En deuxième argument, tu mets un DROITE qui renvoie une chaine de caractères alors qu'il faut un entier.
Ceci est vrai pour les 2 STXT que tu as dans ta formule. Celle que je te propose est corrigée mais avec ce que je suppose et qui risque d'etre faux. A toi de l'adapter.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Nachos, Rouge, Fred0o,

bienvenue sur le site XLD !

ta formule est :

=SI(ET(DROITE(D1;1)="M";STXT(D1;DROITE(D1;3);1)<>".");STXT(D1;-3;2);"Probleme")



1ère condition : DROITE(D1;1)="M" : ok : le dernier caractère de D1 doit être "M"



2ème condition : STXT(D1;DROITE(D1;3);1)<>"."

pour : STXT(D1;DROITE(D1;3);1)

a) c'est 1 caractère de D1, à partir du caractère numéro X ; or ici, X est : DROITE(D1;3)

b) même si les 3 caractères de droite représentent un nombre, comme par exemple "124" :

* c'est du texte ! ➯ il faut le convertir en numérique : --DROITE(D1;3)

* est-ce que le texte que tu as en D1 fait vraiment plus de 100 caractères ?

* si les 3 caractères de droite sont un nombre, comme tu utilises ET() ça vient en contradiction avec la 1ère condition, car si le dernier caractère de D1 est "M", ça ne peut pas être un nombre ! mais pour X, il faut obligatoirement un numéro !​



si les 2 conditions sont vraies en même temps : STXT(D1;-3;2)

c'est 2 caractères de D1, à partir du caractère numéro X ; or ici, X est -3 ! alors que le numéro minimum doit être 1 ! même 0 n'est pas valide ! et toi, comme ça, l'air de rien, tu mets -3 ! ça fait que même si la 2ème condition était correcte, ça planterait ici !


si les 2 conditions sont fausses, ou seulement l'une des deux : "Probleme"

c'est ok ; à part que ça serait plutôt : "problème"​



mes félicitations ! tu as réussi à créer une formule ou tout pose problème, sauf, justement, la dernière partie de la formule qui est le texte "probleme" ! (c'est un beau record, hein ?)



petite question : ne crois-tu pas qu'on aurait pu t'aider davantage si tu avais mis quelques exemples de données qui peuvent être en D1 ? et tant qu'à faire, quelques données avec un point et quelques données sans point ; ceci étant dit par rapport à la fin de ta 2ème condition : <>"." ; ainsi que quelques données avec "M" en dernier caractère ou sans ce "M" final.​



@Fred0o

ta formule retourne #NOM? car la fonction NBAR() n'est pas reconnue ! tu as oublié un « C » !

même avec cette correction, je n'ai même pas cherché à tester ta formule, car je trouve que l'énoncé est beaucoup trop flou tant qu'on n'a pas quelques exemples de données de D1 ; avec ou sans point ; avec dernier caractère "M" ou non ; mais si t'es tombé juste, bravo ! (même si ce sera peut-être seulement une coïncidence)

soan
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…