Re,
Envoyé par
mandela9857
Je souhaite juste obtenir le nombre d'usagers différents fréquentant une ou plusieurs activités nominativement identifiés; cela peut donc être deux ou trois, voire beaucoup plus d'activités.
Bruno
Avec la volonté de pouvoir sélectionner autant d'activités que l'on veut, difficile de mettre en place une formule.
Le moyen me paraissant le plus simple serait de remplacer la source données telle qu'indiquée
[IMG][/IMG]
par un tableau semblable à l'image ci-dessous :
[IMG][/IMG]
Dans ce tableau, la colonne A réservée aux prénoms ne doit plus contenir de doublons; il faut donc transposer la colonne A de la 1ère feuille (je l'ai appelée Source) dans la colonne A de cette deuxième feuille (appelée Tableau)à partir de la cellule A3 en éliminant les doublons. Avec Excel 2010, cela ne pose pas de problème mais je ne me rappelle plus des fonctionnalités d' Excel 2003.
Dans la plage B3: D7 du tableau exemple, l'appartenance pour un usager à un atelier s'indiquee par un 1 dans la case correspondante de ce
tableau à double entrée, la non appartenance par une case vide ou zéro. On peut obtenir toutes ces valeurs par formule; en B3, écrire la formule :
=SOMMEPROD((DECALER(Source!$A1;;;NBVAL(Source!$A:$A);1)=Tableau!$A3)*(DECALER(Source!$B1;;;NBVAL(Source!$B:$B);1)=Tableau!B$1))
Recopier cette formule sur toute la plage B3: D7.
Il vaut peut être mieux pour le tableau réel supprimer ensuite les formules (sélection, copie puis collage spécial >> valeurs).
De nouveaux usagers pourraient ensuite s'ajouter à la suite dans le tableau.
Utilisation du tableau :
Les activités retenues s'obtiennent en mettant la valeur 1 sur la plage B2 : D2 (ou une plage plus longue s'il y a 45 activités possibles) .
La colonne demandée est dans le tableau exemple la colonne E avec le résultat en E2.
En E3, écrire la formule :
=1*(SOMMEPROD(DECALER($B$2;;;1;NBVAL($1:$1)-3) * DECALER($B3;;;1;NBVAL($1:$1)-3))>0)
Recopier vers le bas dans la colonne E.
En E2, on obtient la somme attendue par la formule :
=SOMME(DECALER(E$3;;;NBVAL($A:$A)-2;1))
J'ai rajouté la colonne F non demandée et correspondant à des usagers participant non pas à une activité1 OU 2 OU 3... mais à des usagers participant aux activités 1 ET 2 ET...
La formule à écrire en F4 et à recoper vers le bas :
=1*(SOMMEPROD(DECALER($B$2;;;1;NBVAL($1:$1)-3)* DECALER($B3;;;1;NBVAL($1:$1)-3))>=SOMME(DECALER($B$2;;;1;NBVAL($1:$1)-3)))
EN F2, il suffit de recopier la formule de E2.
Ces formules peuvent sembler compliquées inutilement pour l'exemple mais elles devraient pouvoir s'adapter au tableau réel pratiquement sans modification.
Cordialement
Claude
Partager