Signaler

Sous totaux avec conditions [Résolu]

Posez votre question Nephtys9130 - Dernière réponse le 14 sept. 2016 à 15:15
Bonjour à tous,
voilà j'ai un fichier excel de plus de 20 000 lignes regroupant toutes les dates d'absences de mon personnel.
Matricule Nom Prénom Date de début Date de fin Nombre de jour
Je souhaite appliquer un sous total à chaque salarié dont le nombre de jour d'absence est supérieur à 119 jours mais pas aux autres.
et la je sèche ! je ne sais pas faire les macros.
Merci à vous !
Afficher la suite 
Utile
+0
moins plus
Bonjour, j'ai l'impression qu'il manque qques infos.
Si tu as déjà le nombre de jour dans une colonne, tu as ta réponse, non?
Cordialement.
Damien.
Ajouter un commentaire
Utile
+0
moins plus
Non car je peux avoir plusieurs lignes pour le même salarié s'il a été malade plusieurs fois
la requête faite sur le logiciel de gestion remonte sur une année j'ai oublié de notifié cette info toutes mes excuses
Ajouter un commentaire
Utile
+0
moins plus
Bonjour,

certainement pas tout compris, mais si en colonne E tu as le nombre de jours d'absences tu peux utiliser
=SI(SOMME($E1:E2)>=119;SOMME($E1:E2);"")

ou sélectionne ton tableau exemple A1:E50
onglet Données/module Plan/Sous total/sélectionne à chaque changement de Nom et coche nombre de jour qui est l'entête de ta colonne
si ce n'est pas ce que tu cherches faire joint un exemple de fichier anonymisé
1) Clic sur ce lien http://www.cjoint.com/
2) Clic sur le bouton Parcourir pour sélectionner ton fichier
3) Clic sur le bouton Créer le lien en bas de la page
4) Au bout de quelques secondes en haut de la page en bleu souligné un lien sera généré, tu le sélectionnes et tu le copies dans une réponse

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Ajouter un commentaire
Utile
+0
moins plus
Bonjour,

Si vos matricules sont répertoriez dans un autre onglet:
=SI(SOMME.SI(Feuil1!F:F;Feuil1!A:A=A2)>119;SOMME.SI(Feuil1!F:F;Feuil1!A:A=A2);"")

Ceci affichera la somme uniquement si le nombre total de jour est supérieur à 119
Ajouter un commentaire
Utile
+0
moins plus
http://www.cjoint.com/c/FIojQkHkBoH

voici le document anonymé.
Par exemple, je souhaite avoir un sous total de tous les agents dont le nombre de jour total d'absence dépasse 119 jours uniquement car le fichier réel a plus de 20 000 lignes.
Chaque agent a un matricule donc potentiellement plusieurs lignes d'absences puisque le ficheir regroupe les absences sur une année totale.
Merci pour votre aide !
Ajouter un commentaire
Utile
+0
moins plus
Re,

sur ton fichier joint, sélectionne la plage A1:H50 par exemple
onglet Données/module Plan/Sous total/sélectionne à chaque changement de Matricule et coche Nb jours
Nephtys9130 4Messages postés mercredi 14 septembre 2016Date d'inscription 14 septembre 2016 Dernière intervention - 14 sept. 2016 à 11:56
oui c'est ce que j'ai fait au départ mais il me faut uniquement ceux dont le nombre de jour dépasse 119 je n'ai malheureusement pas le temps de traiter 20 000 lignes à la main derrière :/
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Re,

je ne vois pas comment avec sous.total sans passer par du VBA
et pourquoi ne pas ajouter une mise en forme conditionnelle qui colorise la ligne dont le sous total est égale et supérieur à 119
Nephtys9129- 14 sept. 2016 à 12:23
Parce qu'il y a trop de lignes mon chef ne veux pas ...
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Re,

il est gentil ton boss, essaye comme cela en cellule I2 et incrémente la formule vers le bas

=SI(SI(SI(A2=A3;1;0)=0;SOMMEPROD(($A$2:$A$100=$A2)*($F$2:$F$100));"")>=119;SI(SI(A2=A3;1;0)=0;SOMMEPROD(($A$2:$A$100=$A2)*($F$2:$F$100));"");"")
Ajouter un commentaire
Utile
+0
moins plus
Re,

vous n'imaginez pas a quel point ^^
ça ne fonctionne pas ça reste blanc
Ajouter un commentaire
Utile
+0
moins plus
Re,

ça reste blanc parce que le total des jours en colonne F est inférieur à 119 pour chaque agent
automatise le calcul colonne F, en F2 colle cette formule et incrémente vers le bas
=E2-D2+1
ensuite pour tester ma formule
=SI(SI(SI(A2=A3;1;0)=0;SOMMEPROD(($A$2:$A$100=$A2)*($F$2:$F$100));"")>=119;SI(SI(A2=A3;1;0)=0;SOMMEPROD(($A$2:$A$100=$A2)*($F$2:$F$100));"");"")

formule que tu as collé en I2 et incrémenté vers le bas modifie les dates exemple en D4 remplace
21/04/2016 par 01/01/2016 tu verras en I4 la somme de 124 correspondant au matricule 1 de la colonne A et au total de ce matricule soit 6+5+113 puisque entre le 21/04/2016 et 01/01/2016 il y a 113 jours

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Nephtys9130 4Messages postés mercredi 14 septembre 2016Date d'inscription 14 septembre 2016 Dernière intervention - 14 sept. 2016 à 14:52
Wow ca marche !!!!
Vous êtes super gentil merci beaucoup !!
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Re,

alors je passe le statut en résolu
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !