Excel - Calculs

Résolu
NOEM84820 Messages postés 4 Statut Membre -  
NOEM84820 Messages postés 4 Statut Membre -
Bonjour,


Bonjour,
C'est la premiere fois que je fais une demande d'aide sur votre forum j'espere que quelqu'un pourra m'aider car je galère vraiment et ne trouve pas de solutions à mon probleme

Je souhaite faire un traitement de base de données mais ne sais pas comment m'y prendre.

ci dessous, une version simplifiée du cas que je rencontre pour vous expliquer concretement.

Col 1 Col 2
Acteur 1 client a
Acteur 1 client b
Acteur 2 client b
Acteur 2 client c
Acteur 2 client c

Je voudrais savoir pour chaque acteur combien de clients différents il a eu a traiter.

Avec le tableau croisé dynamique, je bloque car par exemple pour l'acteur 2 ci dessus il m'indique 3 clients alors qu'en realité je n'en ai que 2 de clients différents.


Je souhaite savoir pour chaque acteur le nombre de clients différents qui ont été traités par cet acteur.

Mon fichier fait 200 000 lignes.

Merci par avance pour votre aide qui me sera tres tres précieuse !!!

A voir également:

3 réponses

Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Salut,

200000 lignes ça fait beaucoup surtout si le nombre de colonne est important.
enfin essaye cette formule

=SOMMEPROD((A1:A20="Acteur 2")*(B1:B20<>""))

tu peux également remplacer le critère dans la formule par l'adresse d'une formule contenant le critère ou une liste de validation comme la cellule D1.
la formule devient

=SOMMEPROD((A1:A20=D1)*(B1:B20<>""))

si cette formule doit être utilisée dans une feuille différente que celle de ta base de donnée nomme tes plages, ex. la plage colonne A des Acteurs nomme la par ex. Act
et la plage Clients nomme la Client

la formule devient quel que soit la feuille
=SOMMEPROD((Act=D1)*(Client<>""))
0
Raymond PENTIER Messages postés 71833 Date d'inscription   Statut Contributeur Dernière intervention   17 381
 
Bonjour NOEM84820.

Les formules de Mike-31, que je salue amicalement, te calculent combien de fois chaque acteur figure dans le tableau.
Si tu veux, en plus, savoir combien de fois chaque acteur a reçu chaque client, tu remplaces <>"" par ="client c", ce qui donne, en saisissant en E1 le critère client,
=SOMMEPROD((A1:A20="Acteur 2")*(B1:B20="client c"))
=SOMMEPROD((A1:A20=D1)*(B1:B20=E1))
=SOMMEPROD((Act=D1)*(Client=E1))

Comme te l'a conseillé Mike-31, il serait sage de renseigner D1 et E1 par des listes déroulantes de cellule. J'ajoute que pour élaborer les listes-source, tu as intérêt à partir des colonnes A et B, en faisant une suppression des doublons ; ainsi tu évites toute erreur d'orthographe à la saisie.

Cordialement.
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
Bonjour,

en plus léger qu'un sommeprod() tout en conservant un TCD, à condition que col1 et col2 soient triés :
ajouter une colonne avec en C2 :
=OU(A1<>A2;B2<>B1)*1

et faire le TCD sur col1 et col3 (la somme, pas le nb)

exemple : https://www.cjoint.com/?BICqUC3b389

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0
NOEM84820 Messages postés 4 Statut Membre
 
MERCI Beaucoup !!!!! eriiic ! ta réponse et ta solution sont parfaitement utiles dans le cadre de ce que je dois traiter sur ma base ! A 18h30 quelle soulagement ! merci a toutes les personnes qui m'ont aidés sur ce sujet ! merci à vous !
0