Formules sous Excel

Fermé
anjf Messages postés 44 Date d'inscription lundi 12 mars 2018 Statut Membre Dernière intervention 24 mars 2020 - 12 mars 2018 à 13:58
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 - 14 mars 2018 à 14:10
je souhaite résoudre 1 problème avec la fonction si imbriquée. en effet après avoir aligné des si, je reçois des message d'erreur ( trop d'argument, renvoie la valeur faux etc). Ainsi donc j'ai 1 tableau de gestion du personnel qui souhaite en temps réel afficher le code grade d'un agent pour son avancement automatique dès que les conditions sont réunies. lexique d11= code grade de l'agent; i11= durée entre avancement automatique (donnée obtenue après une formule : maintenant() - date dernier avancement /365 qui donne un nombre décimal à 2 chiffres). L11= le code actualisé.
voici les conditions: si(2<=i11<3;d11+1;d11;si(d11=133;3<=i11<4;d11-12;d11;si(4<=i11<9;d11-12;d11))) il en est de même pour les autres catégories car 133 pour la 1è; 233 pour la 2è; 333 pour la 3è; 433 pour la 4è et 533 pour la 5è ou la donnée varie le reste c'est la même condition. cela fait près de 2 semaines que je suis dessus et les messages d'erreur semblent me décourager je compte sur vous
A voir également:

1 réponse

diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 844
12 mars 2018 à 14:21
Bonjour,

Votre formule est incompréhensible au vu des erreurs à l'intérieur...

Voici vos différentes erreurs:
-La fonction Si admet que 3 arguments : La Condition , la valeur si vrai, et la valeur si faux ( optionnel) => Rien que votre premier Si a a lui seul 4 Arguments...

- " 2<=i11<3" Ne pas écrire comme ça mais plutôt et(i11>=2;i11<3) : Autant dans le sens commun on peut écrire en disant que une valeur est entre deux , l'informatique ne comprend pas toujours.

Si vous voulez une meilleur aide merci de préciser exactement votre besoin ... on vous y aidera
0
anjf Messages postés 44 Date d'inscription lundi 12 mars 2018 Statut Membre Dernière intervention 24 mars 2020
14 mars 2018 à 12:58
Bonjour peut être que j'ai mal posé le problème j'ai un tableau qui veut gérer l'avancement automatique des agents dans les colonnes de saisie, il y la donnée code grade de l'agent c'est une donnée à saisir (colonne D. chaque agent a un code grade 102 103 104 122 133 233 333 433 422 533) selon sa classification, le code grade varie et c'est ce code grade que je souhaite faire varier selon un certain nombre de conditions dès qu'elles sont vérifiées ou pas. la colonne I est celle qui reçoit le résultat issus du calcul entre la dernière date d'avancement et la date du jour ce résultat est la base de nos conditions i>=2 la colonne L qui reçois le résultat des conditions reçois la valeur du code grade + 1 si non le code grade initial. si le code grade initial (colonne D.) a les valeurs suivantes 133, 233, 333, 433, 533 et si i>=3; i<4 alors L reçoit D-12 si non L prend le code grade initial et si enfin i>=4; i<9 alors L reçoit D-12 si non L prend le code grade initial. voici l'esprit du problème ainsi traduit.

si i>=2 alors L=D+1 si non L=D;
si non si D=(133 ou 233 ou 333 ou 433 ou 533) et i>=3 ; i<4 alors L=D-12 si non L=D;
si non si i>=4; i<9 alors L=D-12 si non L=D.

NB: i=(maintenant()-date dernier avancement)/365 une donnée issue de ce calcul qui est un décimal de 1 chiffre après la virgule

alors comment ça marche, comment représenter ce problème avec la fonction si ou tout autre avec Excel?
0
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 844
14 mars 2018 à 14:10
Bonjour,

C'est déjà bien mieux expliqué je vais essayé de faire avec ces données :)
Ou va considéré qu'on prend la ligne numéro 2 il vous restera a l'adapter suivant la première ligne à prendre en compte
Ceci serait à mettre en L2
=Si(i2<2;D2;si(I2<3;D2+1;Si(Et(i2<4;ou(D2=133;D2=233;D2=333;D2=433;D2=533));D2-12;Si(I2<4;D2;Si(I2<9;D2-12;D2)))))

A essayer, en espérant ne pas avoir fait d'erreur de parenthèse:)
0