Formule excel non valide

Fermé
Tartempionnette65 Messages postés 12 Date d'inscription mardi 2 décembre 2014 Statut Membre Dernière intervention 23 janvier 2015 - 3 déc. 2014 à 13:22
Tartempionnette65 Messages postés 12 Date d'inscription mardi 2 décembre 2014 Statut Membre Dernière intervention 23 janvier 2015 - 18 déc. 2014 à 11:50
Bonjour à tous,
J'ai une formule de calcul qui doit remonter les chiffres de 0 à 3 inclus.
La formule ne fonctionne pas et un message m'apparaît "...La formule que vous avez tapé contient une erreur..."
La formule est celle-ci :

=SI(N2="ORDPLA";"";SI(OU(N2="Stock";N2="STKPRO");"0";SI(OU(ET(N2="D.A.";U2>Z2); ET(S2>=O2;OU(N2="AVCONF";N2="AVILIV"));ET(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2=S2));"1";SI(ET(OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2="");"2";SI(OU(ET(OU(O2>Z2;O2>S2);OU(N2="AVCONF";N2="AVILIV"));(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2>S2);ET(N2="D.A.";Z2<U2));"3";"erreur")))))

Tout en sachant que N2 est format "texte" et les autres mentionnées en format "date" (col U, Z, AB, O)

Savez vous d'où vient l'erreur ?
Merci pour votre aide.

9 réponses

JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
Modifié par JvDo le 4/12/2014 à 07:44
Bonjour,

en partant de la formule proposée par via55, voici un élément de réponse :
dans la dernière condition,
SI(OU(ET(OU(O2>Z2;O2>S2);OU(N2="AVCONF";N2="AVILIV");AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2>S2;ET(N2="D.A.";Z2<U2)));"3";"erreur")
le premier OU() ne sert à rien et tu as 2 conditions antinomiques liées par un ET. Donc c'est toujours faux.
il s'agit de
OU(N2="AVCONF";N2="AVILIV")
et
OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR")

cordialement

edit : je me rend compte que ta formule est différente ......
2
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
4 déc. 2014 à 07:56
Bon, si je pars de ta formule, dans cette partie :
SI(OU(ET(OU(O2>Z2;O2>S2);OU(N2="AVCONF";N2="AVILIV"));(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2>S2);ET(N2="D.A.";Z2<U2));"3";"erreur"))))) 
, ce qui est en gras devrait avoir un opérateur logique devant ou il y a une parenthèse à déplacer

cordialement
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
4 déc. 2014 à 12:34
Salam Tartempionnette65.

Je commence par mes excuses les plus plates et comme dit l'adage: "Mieux vaut se taire que de dire des bêtises".

J'aimerais beaucoup apporter ma pierre à l'édifice, j'ai donc résumé la logique en ce qui suit :

(Si N2="ORDPLA" Alors AA2= "")

Sinon (Si N2="Stock" ou N2="STKPRO" Alors AA2 = "0")

Sinon (Si N2="D.A." Alors (Si Z2>=U2 Alors AA2 = "1" Sinon AA2="3"))

Sinon (Si N2="AVCONF" ou N2="AVILIV" Alors (Si O2<=S2 ou O2<=Z2 Alors AA2 = "1" Sinon (Si O2>Z2 Alors AA2="3")))

Sinon (Si N2="ECHCDE" ou N2="ECPRLI" ou N2="CDESTR" Alors (Si AB2="" Alors AA2="2" Sinon (Si AB2<>="" Alors (Si AB2<=S2 Alors AA2="1" Sinon AA2="3"))))

Ce qui se traduit par la formule suivante :
=SI(N2="ORDPLA";"";SI(OU(N2="Stock";N2="STKPRO");"0";SI(N2="D.A.";SI(Z2>=U2;"1";"3");SI(OU(N2="AVCONF";N2="AVILIV");SI(OU(O2<=S2;O2<=Z2);"1";SI(2>Z2;"3"));SI(OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");SI(AB2="";"2";SI(AB2<=S2;"1";"3")))))))

Mes respects.
2
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
4 déc. 2014 à 10:55
Bonjour,

la logique que tu décris ne correspond pas à ta formule.
tu peux essayer ceci :
=SI(N2="ORDPLA";"";
SI(OU(N2="Stock";N2="STKPRO");"0";
SI(OU(ET(N2="D.A.";U2>Z2); ET(OU(O2<=Z2;S2>=O2);OU(N2="AVCONF";N2="AVILIV"));ET(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2=S2));"1";
SI(ET(OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2="");"2";
SI(OU(ET(O2>Z2;OU(N2="AVCONF";N2="AVILIV"));ET(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2>S2);ET(N2="D.A.";Z2<U2));"3";
"erreur")))))
une remarque cependant : ta dernière règle n'est pas cohérente avec la 3 ème.
En effet, si N2 = "D.A." et U2>Z2 est vrai, AA2 prendra la valeur "1" et ne passera jamais sur ta dernière règle.
Si tu arrives à la dernière règle, c'est que N2 = "D.A." et U2>Z2 est faux. Pas besoin de tester s'il est vrai.

cdlt
1
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
4 déc. 2014 à 12:14
Bonjour à tous

Entièrement d'accord avec JvDo
Pour alleger un peu la formule on peut supprimer trois OU en remplaçant d'une part OU(N2="Stock";N2="STKPRO") par GAUCHE(N2;1)="S" etOU(N2="AVCONF";N2="AVILIV") par GAUCHE(N2;1)="A"

Cdlmnt
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
3 déc. 2014 à 15:39
Bonjour,

Il y a plus que cela, elle est mal formulée.

explique clairement ce que tu veux faire en fonction du contenu de chaque cellule
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tartempionnette65 Messages postés 12 Date d'inscription mardi 2 décembre 2014 Statut Membre Dernière intervention 23 janvier 2015
3 déc. 2014 à 20:46
J'ai 5 données d'entrée :
- colonne N, il s'agit de statut d'état de commande (ORDPLA, AVCONF, STKPRO, D.A....), en format texte
- colonnes U, S, Z, O et AB, des dates qui permettent de dire si les commandes sont en retard ou pas. (col Z étant la date du jour qui remonte automatiquement par la fonction "maintenant")
Cette évaluation déduit des degrés de criticité : 0, 1, 2 ou 3.

Je ne sais pas si je suis assez claire.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
3 déc. 2014 à 21:21
Re,

je regrette mais je ne comprends rien à tes explications, essaye de donner des exemples, si cellule N2 j'ai ORDPLA, en cellule U2 j'ai ? en S2 etc ...
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
Modifié par via55 le 4/12/2014 à 01:59
Bonjour

Je n'ai plus d'erreur en modifiant ainsi :
=SI(N2="ORDPLA";"";SI(OU(N2="Stock";N2="STKPRO");"0";SI(OU(ET(N2="D.A.";U2>Z2);ET(S2>=O2;OU(N2="AVCONF";N2="AVILIV"));ET(AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR"));AB2=S2);"1";SI(ET(OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2="");"2";SI(OU(ET(OU(O2>Z2;O2>S2);OU(N2="AVCONF";N2="AVILIV");AB2<>"";OU(N2="ECHCDE";N2="ECPRLI";N2="CDESTR");AB2>S2;ET(N2="D.A.";Z2<U2)));"3";"erreur")))))

mais est ce que ça correspond bien aux divers cas à traiter ???
Il doit y avoir moyen de simplifier mais il faudrait connaitre la logique exacte, ce n'est pas tout à fait normal qu'on retrouve 2 fois la même séquence dans la formule ex : ET(N2="D.A.";U2>Z2)

Pour s'en sortir il vaut mieux faire un arbre des possibilités

Cdlmnt

"L'imagination est plus importante que le savoir." A. Einstein
0
tartempionnette65
4 déc. 2014 à 09:19
Bonjour à tous,

Effectivement, je me rends compte qu'il y a des incohérences dans ma formule. Pour être plus précise, voici la logique que je souhaite exprimer :

Si N2="ORDPLA" donc AA2= ""
Si N2="Stock" ou N2="STKPRO" donc AA2 = "0"
Si N2 = "D.A." et U2>Z2 donc AA2 = "1"
Si (N2 = "AVCONF" ou N2 ="AVILIV") et S2>=O2 donc AA2 = "1"
Si (N2="ECHCDE" ou N2="ECPRLI" ou N2="CDESTR") et AB2<>"" et AB2<=S2) donc AA2= "1"
Si (N2="AVCONF" ou N2="AVILIV") et O2<=Z2 donc AA2 = "1"
Si (N2="ECHCDE" ou N2="ECPRLI" ou N2="CDESTR") et AB2="" donc AA2 = "2"
Si (N2="AVCONF" ou N2="AVILIV") et O2>Z2 donc AA2 = "3"
Si (N2="ECHCDE" ou N2="ECPRLI" ou N2="CDESTR") et AB2<>"" et AB2>S2 donc AA2 ="3"
Si N2="D.A." et Z2<U2 donc AA2="3"

J'ai listé tous les cas de figure
Pourriez vous me dire si vous proposions correspondent bien ?
Encore merci pour votre aide
0
Tartempionnette65 Messages postés 12 Date d'inscription mardi 2 décembre 2014 Statut Membre Dernière intervention 23 janvier 2015
18 déc. 2014 à 11:50
Merci, merci à tous pour vos petits conseils très utiles
0