Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Compter les valeurs uniques (sans doublon) d'une liste filtrée

19 réponses
Avatar
Sundow
Bonjour,

Je cherche =E0 ramener en t=EAte en A1 le nombre de valeurs uniques d'une
liste.

A cet effet j'ai trouv=E9 les formules suivantes qui fonctionnent tr=E8s
bien :

=3DSOMME(SI(FREQUENCE(A4:A12,A3:A12)>0,1))

ou

=3DSOMMEPROD(1/NB.SI(A4:A12;A3:A12))

Malheureusement aucune de ces deux formules ne sont sensibles au fait
que l'on filtre la liste.

Je cherche donc une formule ou fonction VBA qui permettrait de ramener
en A1 le nombre de valeurs uniques apr=E8s filtrage (fl=E8che de filtre
positionn=E9e en A3).

Si quelqu'un =E0 une id=E9e, je le remercie par avance pour son aide.

S.

9 réponses

1 2
Avatar
isabelle
bonjour S,

http://www.cjoint.com/

je pense que la fonction SOMMEPROD est ce qu'il faut.
si tu as mis le critère Date en A1 et le critère Nom en C1

=SOMMEPROD((A3:A5000¡)*(C3:C5000Á))


--
isabelle
Avatar
Sundow
Bonjour Isabelle,

Malheureusement la formule sommeprod ne fonctionne pas. Mais je crois
que mes explications n'étaient pas suffisament claires.

Voici donc un lien qui devrait éclaircir les choses :
http://up-master.com/data/comptageJours_1.jpg

Le but est de dénombrer le nombre de jours travailler pour une
personne (filtrée) et un mois donné (filtré).

En l'occurrance l'individu "A" a travailler 10 jours (la valeur qui
devrait apparaître en D1 est 10). La base a préalablement été filtr ée
sur le mois "Novembre" et sur le NomPrénom de l'individu "A".

Si je filtre l'individu B alors la réponse sera le nombre de jours
travaillé par B. D'où ma question : dénombrer les valeurs uniques
( d'une liste filtrée

Voilà. Merci d'avance pour vos suggestions. Sundow.



On 9 déc, 14:21, isabelle wrote:
bonjour Sundow,

je pense que la fonction SOMMEPROD est ce qu'il faut.
si tu as mis le critère Date en A1 et le critère Nom en C1

=SOMMEPROD((A3:A5000¡)*(C3:C5000Á))

--
isabelle

Le 2011-12-09 04:23, Sundow a écrit :





> Bonjour Isabelle,
> Merci pour ta réponse.
> Je n'étais pas là hier et ne peux te répondre qu'aujourd'hui.
> J'essaye de mettre en classeur en cijoint mais le site ne réponds
> plus ?? En auriez-vous un autre à me conseiller ?
> Voilà donc le problème en détail.
> J'ai une table qui enregistre les heures d'arrivée et de départ de
> personnes et qui calcule le temps travaillé.
> Les étiquettes de la base sont les suivantes :

> A : Mois (le mois est ramené depuis la date)
> B: No (correspond au numéro de ligne+3 car la base commence en linge
> 3)
> C : Nom Prénom (à saisir)
> D : Date (à saisir)
> E: Heure de début (à saisir)
> F: Heure de fin (à saisir)
> G: Total heures (calculé)

> Le filtre est fait sur la colonne A (il s'agit d'un outil visant à
> établir des salaires mensuels) et le nom de la personne (colonne C).
> Je souhaiterais en D1 ramener le nombre de jours travaillés sachant
> qu'il peut y avoir jusqu'à 3 enregistrements pour une personne et pou r
> une date donnée si la personne a travaillé le matin de 9 à 12:00 et
> l'après midi de 14:00 à 18:00 et le soir de 21:00 à 0:00.
> D'où la nécessité d'avoir une formule qui décompte les valeurs
> uniques.
> Merci d'avance si tu as une idée sur la chose.
> Bien cordialement et bonne journée.
> S.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -
Avatar
Sundow
Bonjour Isabelle,

Merci pour le lien et la formule.

Le sommeprod ne fonctionne pas.

Voici le fichier XL http://cjoint.com/?ALjqUhDyvs0

Merci d'avance. - S.
Avatar
isabelle
revoilà ton fichier avec les formules,

http://cjoint.com/?ALjruYP6Q0a

--
isabelle


Le 2011-12-09 10:49, Sundow a écrit :
Bonjour Isabelle,

Merci pour le lien et la formule.

Le sommeprod ne fonctionne pas.

Voici le fichier XL http://cjoint.com/?ALjqUhDyvs0

Merci d'avance. - S.

Avatar
Sundow
Merci beaucoup Isabelle.

Mais ta formule décompte le nombre de lignes filtrées (13) et non le
nombre de valeurs uniques (10).

Je rentre chez moi et n'aurai pas accès à Internet avant lundi. Donc
ne t'étonne pas si je ne te réponds pas d'ici là.

Merci encore pour ton aide et bon we. - Sundow

On 9 déc, 17:22, isabelle wrote:
revoilà ton fichier avec les formules,

http://cjoint.com/?ALjruYP6Q0a

--
isabelle


Avatar
isabelle
ok c'est plus clair,

=SOMMEPROD((A4:A1000¡)*(C4:C1000Á)*SI(NB.SI(D4:D1000;D4:D1000)>1;1;0))

matricielle à valider par ctrl+maj+enter

http://cjoint.com/?ALjt37sIG4g

bon we à toi également

--
isabelle



Le 2011-12-09 12:15, Sundow a écrit :

Merci beaucoup Isabelle.

Mais ta formule décompte le nombre de lignes filtrées (13) et non le
nombre de valeurs uniques (10).

Je rentre chez moi et n'aurai pas accès à Internet avant lundi. Donc
ne t'étonne pas si je ne te réponds pas d'ici là.

Merci encore pour ton aide et bon we. - Sundow

On 9 déc, 17:22, isabelle wrote:
revoilà ton fichier avec les formules,

http://cjoint.com/?ALjruYP6Q0a

--
isabelle


Avatar
isabelle
il y avait un erreur dans la formulation,
voici la correction :

=SOMME((FREQUENCE(SI(D4:D1000="";"";SI(SOUS.TOTAL(3;DECALER(D4;LIGNE(D4:D1000)-LIGNE(D4);));EQUIV(D4:D1000;D4:D1000;0)));LIGNE(D1:D1000))>0)*1)

matricielle à valider par ctrl+maj+enter

--
isabelle
Avatar
Sundow
Bonjour Isabelle,

Waoh ! Merci infiniment Isabelle.

J'essaye même pas de comprendre la formule, je la regarde comme on
regarde une colombe sortie du chapeau d'une magicienne.

Sundow



On 9 déc, 23:14, isabelle wrote:
il y avait un erreur dans la formulation,
voici la correction :

=SOMME((FREQUENCE(SI(D4:D1000="";"";SI(SOUS.TOTAL(3;DECALER(D4;LIGNE( D4:D10­00)-LIGNE(D4);));EQUIV(D4:D1000;D4:D1000;0)));LIGNE(D1:D1000))>0)* 1)

matricielle à valider par ctrl+maj+enter

--
isabelle
Avatar
Jacquouille
Les anges sont un peu magiciens ......
Que dire des geôlières ?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Sundow" a écrit dans le message de groupe de discussion :


Bonjour Isabelle,

Waoh ! Merci infiniment Isabelle.

J'essaye même pas de comprendre la formule, je la regarde comme on
regarde une colombe sortie du chapeau d'une magicienne.

Sundow



On 9 déc, 23:14, isabelle wrote:
il y avait un erreur dans la formulation,
voici la correction :

=SOMME((FREQUENCE(SI(D4:D1000="";"";SI(SOUS.TOTAL(3;DECALER(D4;LIGNE(D4:D10­00)-LIGNE(D4);));EQUIV(D4:D1000;D4:D1000;0)));LIGNE(D1:D1000))>0)*1)

matricielle à valider par ctrl+maj+enter

--
isabelle
1 2