Plage de cellules dans formule SI + multicritère

Bonjour à tous et à toutes,

Brêves présentation : je suis nouvelle sur le forum et mon niveau excel reste moyen. Je travaille sur le logiciel depuis maintenant quelques temps (gestionnaire paie oblige) mais là je bute.

Voila le contexte. Dans ma société, nous touchons une prime transport de 12€ mensuelle. Cependant celle-ci est proratisée en cas de maladie.

J'ai une trame excel avec un tableau présenté comme ceci:

Colonne 1 (A68:A82) : matricule

Colonne 2 (B68:B82) : nom prénom

Colonne 3 (C68:C82) : motif absence

... pour le reste, pas d'intêret à mon problème.

Je voudrais mettre une formule dans un autre tableau qui nous dit :

=SI(ET(A68:A82=matricule concernée;C68:C82="MALADIE");"PRORATA";12)

Je trouvais ma formule correcte, mais dans ma cellule = #valeur!

Si quelqu'un aurait une idée de pourquoi cela bloque. Je joins le fichier ça sera plus simple à comprendre pour vous.

Merci beaucoup de votre aide, en espérant résoudre mon problème.

Bien cordialement

aeryess

20test.xlsx (22.62 Ko)

Bonjour,

A mettre en cellule S51 et à tirer vers le bas :

=SI(SOMMEPROD(($A$68:$A$82=A51)*($C$68:$C$82="MALADIE"))>=1;"PRORATA";12)

Après il y a possibilité de remplacer le mot "PRORATA" par la valeur exacte suivant la façon dont celle-ci est calculée.

Cordialement,

Bonjour et bienvenue

=SI(SOMMEPROD(($A$68:$A$82=A51)*($C$68:$C$82="MALADIE"))>0;"PRORATA";12)

Amicalement

Nad

Edit : 1 mn de retard. Bonjour zirak

Avec des formules aussi performante je suis sûr que nous pourrions sauver le monde.

Merci à vous 2, vous êtes EXCEL-lent !!!!

Bonne continuation.

Cdlt

Aeryess

Bonjour,

Zirak, Nad ou toutes autres individus susceptibles de me venir en aide j'ai encore besoin de vos lumières.

Après avoir proposer ma trame à ma direction, encore des modifications concernant cette fameuse formule. Aalalah !

Voila, la proratisation de la prime ne se fait pas uniquement sur de la maladie mais en cas de maternité, abs injustifiée, et autres..

comment puis-je faire pour cumuler ces conditions dans la formule :

=SI(SOMMEPROD(($A$68:$A$82=A51)*($C$68:$C$82="MALADIE"))>0;12/I1*(I1-F68);12) ??

De plus, autre problème, j'ai voulu faire comme me la preconisait ZIRAK remplacaît mon "PRORATA" par une formule.

C'est à dire que, initialement, la prime, en fonction du matricule et du motif d'absence en face me renvoyait à "prorata". Désormais je souhaite que le calcul se fasse mais en prenant compte également le nombre de jours déduit (en face des critères précédents biensûr, le tableau étant sous forme de liste.

Je vous joint le fichier pour plus de lisibilité.

8test.xlsx (25.19 Ko)

En espérant avoir une réponse les amis !!

Bien cordialement,

aeryess

Bonjour,

Dans le SOMMEPROD, le signe * veut dire ET, donc en gros

 ($A$68:$A$82=A51)*($C$68:$C$82="MALADIE") 

correspond à une ligne où l'on trouve le matricule marqué dans la cellule A51 dans la plage A68:A82 ET le mot "MALADIE" sur la même ligne dans la plage C68:C82.

Pour prendre en compte les autres cas d'absences, il faut utiliser le signe + qui signifie OU

exemple :

($A$68:$A$82=A51)*(($C$68:$C$82="MALADIE")+($C$68:$C$82="MATERNITE"))

(Bien penser à mettre les éléments du OU entre parenthèses, car je n'ai pas testé comment c'était priorisé entre le ET et le OU).

Après il suffit de rajouter un +($C$68:$C$82="ton_Motif") pour chaque élément.

Pour le calcul au prorata, si j'ai bien compris, tu ne peux pas utiliser juste un "-F68" pour soustraire tes jours et tirer la formule vers le bas, car tu peux avoir des jours à soustraire sur plusieurs lignes en cas de plusieurs absences d'une même personne sur le même mois.

Il faut donc remplacer ton -F68 par une somme du nombre du jour correspondant au matricule :

exemple pour la formule en S51 (peut être tirée vers le bas):

12/$I$1*($I$1-(SOMME.SI($A$68:$A$82;A51;$F$68:$F$82)))

Cordialement,

edit : sur la formule au prorata, bien mettre la plage A68:A82 et pas B68:B82

Zirak,

tu es au top.

Pour la première partie, ça fonctionne. Génial.

Pour la deuxième par contre j'essaie d'incrémenter ta formule dans celle intiale, mais rien ne se proratise.

J'ai désormais comme formule........................(roulement de tambours)........................................... :

=SI(SOMMEPROD(($A$68:$A$82=A52)*(($C$68:$C$82="MALADIE")+($C$68:$C$82="MATERNITE")+($C$68:$C$82="ABS INJUSTIFIEE")+($C$68:$C$82="AUTRES")))>0;12/$I$1*$I$1-SOMME.SI($B$68:$B$82;A52;$F$68:$F$82);12)

J'imagine que c'est la partie en gras qui m'ennuie. Je dois avoir un problème de poncutation quelque part qui bloque le calcul ?

Encore un petit effort et je serai la gestionnaire la plus comblée

cdlt,

aeryess

ps : je remet le fichier avec la nouvelle formule

merci !

12test.xlsx (23.68 Ko)

Oui j'ai edité mon poste entre temps j'avais oublié de changer une des plages.

juste pour le calcul du prorata, mets bien :

12/$I$1*($I$1-(SOMME.SI($A$68:$A$82;A51;$F$68:$F$82)))

donc en S51, tu devrais finir avec cette formule :

=SI(SOMMEPROD(($A$68:$A$82=A51)*(($C$68:$C$82="MALADIE")+($C$68:$C$82="MATERNITE")+($C$68:$C$82="ABS INJUSTIFIEE")+($C$68:$C$82="AUTRES")))>0;12/$I$1*($I$1-(SOMME.SI($A$68:$A$82;A51;$F$68:$F$82)));12)

Et ensuite, tu la tire vers le bas.

Cordialement,

un AS de l'informatique ce ZIRAK ! c'est fou comment une personne que l'on ne connaît pas peut nous faire gagner un temps précieux.

Alors un grand merci à toi.

Milles fois merci.

Post fermé définitivement j'espère. J'ai un autre projet sur le feu, d'autant plus important avec des macros SQL. J'ai pas encore mis le nez dedans mais je crois qu'après avoir mis les mains dans le camboui, je reviendrai faire un tour sur le forum.

Bonne continuation à toi !

De rien,

Bonne continuation pour ton autre projet.

Cordialement,

Rechercher des sujets similaires à "plage formule multicritere"