Compter le nombre d'occurence unique en fonction d'un critère [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014
-
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014
-
Bonjour à tous,

Je cherche éperdument à trouver une solution à mon problème, j'ai quasiment passé la journée à chercher une solution sur différents forums.

Je travaille sur Excel 2007/2010 et Window XP

Voici un exemple de mon tableau:

Véhicule n° du mois

32R5 12
28R2 12
29R5 12
29R5 12
30R2 12
33R3 12
33R3 12
32R4 12
32R4 12
36R3 12
32R3 12
32R3 12
32R5 12
32R5 12
32R5 12
28R2 12
29R5 12
29R5 12
30R2 12
33R3 12
33R3 12
32R4 12
32R4 12
36R3 12
32R3 12
32R3 12
32R5 12
32R5 12
32R5 12

Voilà, je cherche à connaitre le nombre d'occurrences dans la colonne véhicule en fonction du n° du mois.

Je sais qu'il y a la fonction Sommeprod qui m'aiderai très certainement mais je ne sais pas l'utiliser.

J'ai grandement besoin vous chers internautes.

Je vous remercie grandement d'avance

Je serai tellement content vous n'avez pas idée..... :D

9 réponses

Messages postés
2368
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
8 octobre 2020
878
Bonjour,
Essayez une matricielle (J boisgontier):
=NB(1/FREQUENCE(SI((B2:B36=B2)*(C2:C36=C2);EQUIV(A2:A36;A2:A36;0));LIGNE(INDIRECT("1:"&LIGNES(A2:A36)))))
À valider avec CTRL+SHIFT+ENTER
Attention s'il y a des vides dans le champ il faut les exclure avec une condition supplémentaire.
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
12757
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
12 octobre 2020
2 040
Bonjour,

Supposons la 1ere colonne plage A1:A20 et le 2nde B1:B20

la formule = SOMMEPROD((A1:A20="32R5")*(B1:B20=12))
te donnera le nombre d'occurence de la donnée 32R5

A adapter à tes besoins

Cdlmnt
Messages postés
23555
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
6 400
Bonjour,

ou un tableau croisé dynamique : https://www.cjoint.com/c/CFgsScBam7V
Rafraichir le TCD en cas de modification des données.
eric
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

Alors j'ai déjà utilisé un tableau croisé dynamique mais cela ne marche pas car en réalité j'ai d'autres critères qui rentre en compte, pardonnez moi

En effet j'aurai une troisième colonne intitulée "nom opérateur"

Je ne peux utiliser non plus la solution de via55 puisque je pars du principe que les n° des véhicules sont aléatoires et inconnus au départ!

Je cherche donc à savoir qu'elle le nombre d'occurrence d'un n° de véhicule en fonction d'un n° de mois et d'un nom d'opérateur et cela sans utiliser de TCD mais je crois que la fonction sommeprod peut m'aider!!

Auriez-vous d'autres idées?
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

Au fait merci pour vos réponses rapides :D
Messages postés
23555
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 octobre 2020
6 400
cela sans utiliser de TCD
Et pourquoi ça ?
C'est typiquement son domaine de prédilection.
Mais bon, si tu préfères mettre des formules à rallonge...

Personnellement je ne vais pas participer car je ne vais pas me prendre la tête alors que c'est faisable avec 3 clics de souris, mais pour ceux que ça va intéresser tu pourrais déposer un nouveau fichier avec la présentation voulue.

eric

PS :
et si c'est le nombre d'occurrence d'un n° de véhicule en fonction d'un n° de mois et d'un nom d'opérateur tu peux utiliser la formule de via en faisant référence à 3 cellules où tu saisis tes critères.
Messages postés
12757
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
12 octobre 2020
2 040
re

Si ! tu peux utiliser ma formule en l'adaptant

= SOMMEPROD(($A$1:$A$20=A1)*($B$1:$B$20=12)) à mettre par ex en C1 et à étirer au bas de la colonne
Si tu veux tenir compte de l'opérateur du rajoutes un * avec la condition voulue dans SOMME PROD

Mais Eric, que je salue au passage, ;), à raison : le mieux c'est un TCD

Cdlmnt
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

Bonjour à vous, il paraît que la nuit porte conseil et j'ai pas mal réfléchi à mon problème et à ce que vous m'avez dit ^^!!

En fait je m'aperçois que je m'ai mal exprimé mon besoin donc je recommence:

Véhicule n° du mois Nom opérateur
32R5 11 x
28R2 11 x
29R5 11 x
29R5 11 x
30R2 11 x
33R3 11 x
33R3 11 x
32R4 11 x
32R4 11 x
36R3 11 x
32R3 11 x
32R3 11 x
32R5 12 y
32R5 12 y
32R5 12 y
28R2 12 y
29R5 12 y
29R5 12 y
30R2 12 y
33R3 12 y
33R3 12 y
32R4 12 y
32R4 12 z
36R3 12 z
32R3 12 z
32R3 12 z
32R5 12 z
32R5 12 z
32R5 12 z


Soit 3 colonnes
- La première : le nom du véhicule
- La seconde le n° du mois
- La troisième le nom de l'opérateur

En fait j'ai besoin de compter le nom d'élément unique et variable (le tableau vis et est rempli quotidiennement) présent dans la colonne 1 (le nom des véhicule) en fonction du mois et du nom de l'opérateur.

Par exemple:
Si je filtre sur l'opérateur "Z", il n'a travaillé qu'au mois n°12 et que sur 4 voitures différentes

Je cherche donc à connaître le nombre de voitures différentes sur lesquelles un opérateur a travaillé sur une période donnée

Je cherche à faire ce calcul à l'aide de sommeprod, car je pense que c'est la formule la plus adéquate pour ce que je veux faire.

En effet, un TCD n'est pas adapté car il m'aurait renvoyé le nombre d'occurrence d'un n° de véhicule et ce n'est pas ce que je cherche.

Est-ce que plus clair ^^?

En revanche j'ai essayé avec cette formule mais ça marche pas:

SOMMEPROD(1/NB.SI($A$2:A62;$A$2:A62)*(B2:B62=B2)*(C2:C30=C2))

Merci d'avance :D

Si pouviez trouvé quelque chose ca serai magistral :D
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 184
Bonjour,

j'ai essayé avec cette formule mais ça marche pas:

Pourquoi ? tout simplement parce qu'une matricielle ne fonctionne qu'avec des plages de même taille => C62
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

Ah en effet,

Je viens de modifier la formule mais ca ne me donne pas le résultats escompté!

J'ai utilisé cette formule en fait:
SOMMEPROD(1/NB.SI($A$2:A62;$A$2:A62)*(B2:B62=B2)*(C2:C62=C2))

Ca me donne #DIV/0!

Alors que le résultat devrais être 8 pour l'opérateur X en mois 11

Pourquoi cette formule ne fonctionne donc pas?

Cordialement
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

OMG votre solution est magistrale ^^!!!!

Si j'avais pu je vous aurait embrassé^^

Par contre je la comprends absolument pas oO donc si vous pouviez m'aider ca serait la cerise sur le gâteau :D

Merci infiniment en tout

Vous m'avez sauvé la vie ^^!!!
Messages postés
2368
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
8 octobre 2020
878
C'est vrai qu'elle est un peu délicate cette formule.
Pour ne pas m'emmêler les crayons je vais limiter mon explication au principe:
Frequence retourne nombre d'occurrences d'une valeur quand elle la rencontre la 1ere fois en balayant le champ, ensuite elle retourne 0. donc 1/Frequence retoune #DIV/0! et la fonction NB ne compte pas les #DIV/0!
On ne peut pas employer SI(ET(.....)) on utilise SI(..)*(...)=1 pour définir un critère.
La formule de base est: =NB(1/FREQUENCE(SI(critere="x";champ);champ))
Messages postés
11
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
8 mars 2014

Excellent merci pour les précisions!!

Cette fonction est sacrément puissante et dans mon emploi elle m'enlève une sacrée épine du pied je peux vous le garantir oO!!