Comptabiliser le valeurs unique selon deux conditions

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
P
Phèdre
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 13 juillet 2017
Version d'Excel : 2010 FR

Message par Phèdre » 13 juillet 2017, 10:19

Bonjour,

Ca fait maintenant une semaine que je sèche sur quelque chose qui pourtant me parait simple :(

Je souhaite comptabiliser le nombre de participants (à une formation) selon le "groupe" auquel ils appartiennent et "la date" à laquelle ils ont participé. Autrement dit le nombre de valeur unique de la colonne "PARTICIPANTS" de tel groupe sur telle période (mois + cumul sur l'année, sachant que le fichier ne regroupera que des données de l'année en cours, maximum 700 lignes). J'ai préparé un fichier exemple pour comprendre la situation (avec le fait par exemple que dans l'année je peux avoir plusieurs fois le même participants mais que je ne veux le compter qu'une seule fois sur le cumul annuel, et aussi le fait que sur une journée j'ai parfois un participant mais parfois plusieurs et donc je ne peux pas seulement compter les dates).
Je ne peux pas passer par un tdc car l'objectif est que ce tableau puisse ensuite être exploiter comme une synthèse automatisée par mon manager et ses managés qui n'ont pas la volonté de se former à Excel (et que moi après je ne serais plus là).

C'est fou, ça me parait plutôt "simple" et pourtant je n'y arrive pas malgré tout ce que j'ai pu lire (formule frequence, formule nb.si.ens, formule decaler...) d'où mon post ici. J'espère que l'un de vous trouvera ça simple et résoudra l'affaire en deux coups de cuillère à pot!
testexemplePhedre.xlsx
(9.73 Kio) Téléchargé 16 fois
Avatar du membre
mbbp
Passionné d'Excel
Passionné d'Excel
Messages : 6'293
Appréciations reçues : 228
Inscrit le : 29 mars 2014
Version d'Excel : 2007 FR

Message par mbbp » 13 juillet 2017, 10:47

Bonjour le forum,

Deux critères de recherche dans la même colonne ?

Proposition :

B13 :
=SOMMEPROD(--('Données brutes'!$C$3:$C$100=B13)*(MOIS('Données brutes'!$H$3:$H$100)=4))
B16 :
=SOMMEPROD(--('Données brutes'!$B$3:$B$100=B16)*(MOIS('Données brutes'!$H$3:$H$100)=4))
D13 :
=SOMMEPROD(--('Données brutes'!$C$3:$C$100=B13))
D16 :
=SOMMEPROD(--('Données brutes'!$B$3:$B$100=B16))
Effectifs.png
Effectifs.png (5.48 Kio) Vu 265 fois
P
Phèdre
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 13 juillet 2017
Version d'Excel : 2010 FR

Message par Phèdre » 13 juillet 2017, 11:01

Merci pour la collone mensuelle ça semble fonctionner parfaitement, mais malheureusement pour le cumul annuel ces formules n'éliminent pas les doublons dans les participants Donc je me retrouve avec 5 participants alors qu'il n'y en a eu que 4 (1 a participé deux fois, mais je ne souhaite le compter qu'une fois) en D14, idem pour D16, et je me retrouverais surement avec le même problème si j'avais plusieurs fois le même participant sur un mois...
Avatar du membre
mbbp
Passionné d'Excel
Passionné d'Excel
Messages : 6'293
Appréciations reçues : 228
Inscrit le : 29 mars 2014
Version d'Excel : 2007 FR

Message par mbbp » 13 juillet 2017, 11:24

D13 :
=SOMMEPROD(--('Données brutes'!$C$3:$C$100=B13))-NB.SI.ENS('Données brutes'!$C$3:$C$100;B13;'Données brutes'!$G$3:$G$100;0,5)/2
D16 :
=SOMMEPROD(--('Données brutes'!$B$3:$B$100=B16))-NB.SI.ENS('Données brutes'!$B$3:$B$100;B16;'Données brutes'!$G$3:$G$100;0,5)/2
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 13 juillet 2017, 18:10

bonjour
un essai tulipé ;;)
Phedre2.xlsx
(10.51 Kio) Téléchargé 19 fois
cordialement
c'est en cherchant qu'on trouve
P
Phèdre
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 13 juillet 2017
Version d'Excel : 2010 FR

Message par Phèdre » 17 juillet 2017, 10:58

tulipe_4 a écrit :bonjour
un essai tulipé ;;)
Phedre2.xlsx
cordialement
Super, ça fonctionne parfaitement, merci!

Je pousse peut être le bouchon, mais comme j'aime comprendre ce que je fais, pourquoi le "-3" dans la formule?
=SOMMEPROD((EQUIV($J$4:$J$14;$J$4:$J$14;0)=LIGNE($H$4:$H$14)-3)*(($I$4:$I$14=$B13)+($H$4:$H$14=$B13)))

En tout cas merci milles fois,
p
patrick1957
Passionné d'Excel
Passionné d'Excel
Messages : 3'121
Appréciations reçues : 33
Inscrit le : 24 août 2015
Version d'Excel : 2007-2010-2016 PC

Message par patrick1957 » 17 juillet 2017, 11:05

Bonjour,

le -3 parce que la tableau de référence commence à la ligne 4; déplace le pour voir que ça ne fonctionne plus :) (feuille "calculs")
si tu le mets en ligne 10, il faudra écrire -9 :)

P.
Je fais du géocaching et vous ?
Indentez vos codes VBA, ---> http://www.oaltd.co.uk/Indenter/Default.htm
A lire pour les débutants: http://www.xlerateur.com/divers/2010/05 ... nnees-612/
P
Phèdre
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 13 juillet 2017
Version d'Excel : 2010 FR

Message par Phèdre » 17 juillet 2017, 11:07

patrick1957 a écrit :Bonjour,

le -3 parce que la tableau de référence commence à la ligne 4; déplace le pour voir que ça ne fonctionne plus :) (feuille "calculs")
si tu le mets en ligne 10, il faudra écrire -9 :)

P.
Ok, je m'en doutais un peu,
Merci :)
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 17 juillet 2017, 11:15

bonjour
-3 parce que le tablo commence a la 4eme ligne ;donc si on veux recuperer la première position (1) ;on enleve 3 pour corriger le decalage ;vu que Equiv renvoie des positions : 1;2;3...... qui seront comparées a des n° de lignes(LIGNE(......)
cordialement
cela permet d'eviter la tartine LIGNE(INDIRECT(1&":""NBVAL(laplage))) et comme pas de INDIRECT ;pas de "volatile" qui aveugle le cheminement de la formule lors de sa mise au point
c'est en cherchant qu'on trouve
P
Phèdre
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 13 juillet 2017
Version d'Excel : 2010 FR

Message par Phèdre » 17 juillet 2017, 11:33

tulipe_4 a écrit :bonjour
-3 parce que le tablo commence a la 4eme ligne ;donc si on veux recuperer la première position (1) ;on enleve 3 pour corriger le decalage ;vu que Equiv renvoie des positions : 1;2;3...... qui seront comparées a des n° de lignes(LIGNE(......)
cordialement
cela permet d'eviter la tartine LIGNE(INDIRECT(1&":""NBVAL(laplage))) et comme pas de INDIRECT ;pas de "volatile" qui aveugle le cheminement de la formule lors de sa mise au point
Merci encore, c'est bien clair maintenant

Bonne journée
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message