Employés éligibles à deux primes en même temps

AneTrotro -  
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je m'essaye à un exercice un peu compliqué sur Excel (en tout cas pour un néophyte comme moi). Tout d'abord, j'ai voulu faire ceci :

1) Si un employé touche 1500€ ou plus, il a droit à une prime de 20%.
2) S'il touche entre 1200 et 1500€, il a droit à une prime de 10%.
3) S'il touche entre 1000 et 1200€, il a droit à une prime de 5%.

J'ai réussi en faisant la formule suivante :

=SI(C2<1000;C2*0;SI(C2<=1200;C2*0,5;SI(C2<1500;C2*0,1;SI(C2>=1500;C2*0,2))))

Ensuite, j'ai voulu rajouter des conditions supplémentaires : il faut également avoir un certain nombre d'enfants pour avoir droit à cette prime.

Dans le cas numéro un, il faut également que l'employé ait 3 enfants au moins.
Dans le cas numéro deux, jusqu'à 3 enfants mais pas plus.
Dans le cas numéro trois, au moins un enfant.

Voici la formule que j'ai tapé :

=SI(C2<1000;C2*0;SI(ET(C2<=1200;D2>=1);C2*5%;SI(ET(C2<1500;D2<=3);C2*10%;SI(et(C2>=1500;D2>=3);C2*20%))))

J'ai nommé la formule en plusieurs parties, car Monsieur Excel me disait que c'était trop long.

Problème : certaines personnes perçoivent une prime de 15%, car elles sont techniquement éligibles à la prime des 5% ET des 10%... Donc une personne qui touche un salaire de 1100€ et a 1 enfant à une prime de 15% au lieu de juste 10, car elle rentre dans deux critères en même temps. Comment empêcher cela ?

Merci d'avance pour votre réponse et bonne journée à vous :)

5 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
Comme pour ta question précédente...
Inverse l'ordre de tes conditions.
0
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
Salut, AneTrotro.

1) Je n'ai pas compris la phrase "J'ai nommé la formule en plusieurs parties, car Monsieur Excel me disait que c'était trop long " ...
2) Il y a une condition superflue à la fin. En effet quand tu écris
SI(C2<1500;C2*0,1;SI(C2>=1500;C2*0,2 tu vérifies 2 fois la limite de 1500 !
Il suffit de terminer la formule par SI(C2<1500;C2*0,1;C2*0,2)))
3) Pour raccourcir un peu ta formule, tu peux remplacer
=SI(C2<1000;C2*0;SI(C2<=1200;C2*0,5;SI(C2<1500;C2*0,1;SI(C2>=1500;C2*0,2))))
par
=C2*SI(C2<1000;0;SI(C2<=1200;0,5;SI(C2<1500;0,1;SI(C2>=1500;0,2))))
4) Pour le reste, jordane45, que je salue, t'a répondu.
0
AneTrotro
 
Bonjour,

Merci beaucoup pour vos réponses à tous les deux !

Je suppose qu'il est peut-être bon de préciser que sur mon ordinateur personnel sur lequel je m'entraine, je suis encore sur le vieil Excel 2003 (sinon je suis sur la 2010, mais je n'y ai accès qu'en semaine).

Pour répondre à votre première question, j'ai fait Insertion > Nom > Définir (je crois que sur les versions plus récentes, c'est Formule > Définir un nom), et j'ai "coupé" ma formule en plusieurs morceaux que j'ai nommé. J'avais voulu faire ça pour contourner le problème de la formule trop longue qu'Excel refuse d'appliquer. Mais mes essais ne se sont pas montrés concluants, même en retournant les conditions.

En revanche, votre formule fonctionne du tonnerre pour les primes ! J'ignorais que l'on pouvait commencer une formule par "=cellule*si", mais je m'en souviendrai.

A cette formule, j'ai ajouté les conditions du nombre d'enfants que j'avais donné dans mon premier message :

=C2*SI(C2<1000;0;SI(ET(C2<=1200;D2>=1);0,5;SI(ET(C2<1500;D2<=3);0,1;SI(ET(C2>=1500;D2>=3);0,2))))

Sauf qu'un employé qui touche 1453€ mais n'a pas d'enfants touche quand même 145,30€ de prime... D'où ce problème peut-il bien venir ?

Encore merci pour votre aide, et désolé de vous ennuyer avec mes questions de petit débutant !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
;D2<=3 .... donc... 0 est bien dans ce cas la....
C'est pour ça que je serai resté sur des formules utilisant des SUPERIEUR et non des INFERIEUR mais que tu aurais inversé l'ordre en commençant par les plus "grandes" conditions..
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Ou sinon tu ajoutes un critères pour indiquer que D2 ne doit pas être vide

=C2*SI(C2<1000;0;SI(ET(C2<=1200;D2>=1);0,5;SI(ET(C2<1500;D2>0;D2<=3);0,1;SI(ET(C2>=1500;D2>=3);0,2))))

Il n'empeche que tu vas quand même avoir des trous avec cette formule.

Que se passe t'il si je touche 1450 euros et que j'ai 4 gosses ?
Ou si je touche 1800 euros et que je n'ai que 2 enfants ?
Dans ces deux cas je ne touche rien ? C'est normal ou c'est un "oubli" de ta part ?
0
AneTrotro
 
Bonjour,

Oui les trous sont normaux, il ne s'agit que d'un exercice que je fais pour m'entrainer par moi-même, donc je n'ai mis que ces conditions-là pour ne pas trop me compliquer la tâche étant donné que je commence à peine à apprendre comment fonctionne Excel.

Quand je mets les grandes conditions en premier, comme ceci :
=SI(ET(C2>=1500;D2>=3);0,2;SI(ET(C2<1500;D2<=3);0,1;SI(ET(C2<=1200;D2>=1);0,5;C2*SI(C2<1000;0))))
les pauvres employés se retrouvent avec une poignée de centimes chacun. Il doit encore y avoir quelque chose de tout bête mais qui m'échappe...

Par contre votre formule fonctionne à merveille, voilà mon petit souci de débutant enfin réglé !

Je vous remercie à nouveau pour votre aide :)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
n'aurais tu pas oublié le premier C2* SI ..
0

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

Posez votre question
Raymond PENTIER Messages postés 58990 Date d'inscription   Statut Contributeur Dernière intervention   17 354
 
Non ! justement à cause de ces trous illogiques (2000 € mais 2 enfants, 1300 € mais 4 enfants, etc.) on est obligés d'écrire
=C2*SI(ET(C2>1500;D2>2);0,2;SI(C2>1200;D2<4);0,1;SI(ET(C2>1000;D2>0);0,05;0)))
0