Formule excel non valide

Tartempionnette65 Messages postés 13 Statut Membre -  
Tartempionnette65 Messages postés 13 Statut Membre -
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

  1. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    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
    1. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
       
      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
  2. redaiwa Messages postés 370 Statut Membre 119
     
    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
  3. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    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
    1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Tartempionnette65 Messages postés 13 Statut Membre
     
    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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  8. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  9. tartempionnette65
     
    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
  10. Tartempionnette65 Messages postés 13 Statut Membre
     
    Merci, merci à tous pour vos petits conseils très utiles
    0