Formules dans Excel

Résolu/Fermé
ouldtahar Messages postés 91 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 25 juin 2013 - 12 oct. 2009 à 17:05
ouldtahar Messages postés 91 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 25 juin 2013 - 13 oct. 2009 à 14:28
Bonjour,

Comment traduire les conditions du tableau suivant par une formule dans Excel ?

Prime d’ancienneté (pour un salaire brut de 1000 E par exemple) :

5% après 2 ans de service 50,00
10% après 5 ans de service 100,00
15% après 12 ans de service 150,00
20% après 20 ans de service 200,00
25% après 25 ans de service 250,00

La formule que j'ai voulu introduire s'avère erronée (D35 = Salaire Brut; D23 = Ancienneté en années) :

=SI(D23=2;C35*0,05;SI(D23>2;C35*0,05;SI(D23=5;C35*0,10;SI(D23>5;C35*0,10;SI(D23=12;C35*0,15;SI(D23>12;C35*0,15;SI(D23=20;C35*0,20;SI(D23>20;C35*0,20;SI(D23=25;C35*0,25;SI(D23>25;C35*0,25;0))))))))))

Merci à T O U S !
A voir également:

5 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
12 oct. 2009 à 18:03
Bonsoir
Je crois, sans vouloir me superposer à l'option de Pijaku, correcte,que le plus simple et de traiter le sujet à l'inverse, compte tenu du fait qu'excel s'arrête à la première conditon remplie :
soit:
=SI(D23>25;C35*25%;SI(D23>20;C35*20%;SI(D23>12;C35*15%;SI(D23>5;C35*10%; SI(D23>2;C35*5%;0)))))

C'est la, méthode dégressive qui permet de définir automatiquement chaque limites de la condition SI.
Au cas où il s'agissent de égal ou plus grand que la durée limite, remplacer > par >=, mais la demande précise "plus de ...."
Crdlmn
3
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
13 oct. 2009 à 09:36
Salut,
sans vouloir me superposer à l'option de Pijaku absolument aucun problème. Ton avis ô combien éclairé apporte bien souvent (comme c'est le cas ici) la meilleure solution. Je te "plussoie" donc et place ce sujet comme résolu. Il est vrai que l'on reconnais les "pros" Excel des "amateurs" tels que moi aux solutions apportées hasardeuses pour les uns (même si cela fonctionne) et techniques pour les autres.
Bonne continuation.
@+
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
12 oct. 2009 à 17:15
Salut,
Ta formule n'est pas mal engagée. Essaye avec l'association SI et ET comme ceci :
=SI(ET(D23>2;D23<=5);D35+5*D35/100;SI(ET(D23>5;D23<=12);D35+D35*10/100; etc etc...
0
ouldtahar Messages postés 91 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 25 juin 2013
13 oct. 2009 à 12:01
Bonjour,
Merci à Vaucluse, merci à Pijaku
Grace à vous, j'ai pu appliquer la formule contenant >= dans le sens dégressif :

Je rappelle les données :
D20 Date : 13/10/2009
D21 Date embauche 01/09/2005
D23 Ancienneté en années 4,113288077 =($D$20-D21)/365,5
C35 Salaire de base 1 000,00 €

Prime ancienneté 50,00 € =SI(D23>=2;C35*0,05;SI(D23>=5;C35*0,1;SI(D23>=12;C35*0,15;SI(D23>=20;C35*0,2;SI(D23>=25;C35*0,25;)))))

Merci encore, bonne journée et gare au prochain problème, il sera résolu avec la bonne volonté à tous !
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
13 oct. 2009 à 12:46
Bonjour
je suis surpris de votre satisfaction....
En effet, la formule que vous donnez dans votre dernier message ne marche en principe pas, puisque toutes les valeurs supérieures ou égales a 2 vont se retrouver avec un C35*0,05 et la suite ne sera pas considérée>.
Etes vous sur de ce que vous avez écrit là et si oui est ce vrai que cela fonctionne. Ca m'intèresse!
Crdlmnt
0

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

Posez votre question
ouldtahar Messages postés 91 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 25 juin 2013
13 oct. 2009 à 14:28
Bonjour,
Vous avez bien sûr raison.
J'ai parlé de formule contenant >= dans le sens dégressif, mais je l’ai écrite dans le sens inverse. La formule devait s’écrire :
=SI(D23>=25;C35*0,25;SI(D23>=20;C35*0,2;SI(D23>=12;C35*0,15;SI(D23>=5;C35*0,1;SI(D23>=2;C35*0,05;)))))

Sinon, le résultat serait erroné :

Date embauche Ancienneté
en années Prime ancienneté
JUSTE : NON :
Formule Formule
Degressive Croissante
Notre
exemple 01/09/2005 4,11357513 50,00 €

Exemple 1 01/12/2007 1,8673371 0,00 € 0,00 €
Exemple 2 01/10/2007 2,03423176 50,00 € 50,00 €
Exemple 3 01/01/2005 4,77841781 50,00 € 50,00 €
Exemple 4 01/09/2004 5,11220714 100,00 € 50,00 €
Exemple 5 01/09/1997 12,1081032 150,00 € 50,00 €
Exemple 6 01/09/1989 20,1026312 200,00 € 50,00 €
Exemple 7 16/09/1983 26,0588556 250,00 € 50,00 €

Merci encore, bonne journée et à bientôt.
0