SOMMEPROD sans doublons

Résolu/Fermé
Signaler
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
-
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
-
Bonjour,

Je sais bien qu'il y a eu plein de questions posées avec les NB.SI et les doublons, mais je n'arrive pas à les transposer au contexte dans lequel je me trouve :

A B
ANO 1
OK
OK
ANO 2
OK
ANO 1
ANO 3
OK
OK

Dans mon exemple, j'ai deux colonnes. La première me renvoie OK ou ANO. La seconde m'indique un numéro d'ano.
Ce que je voudrais savoir, c'est combien d'anos j'ai... Dans mon exemple, j'en ai trois, puisque j'ai deux occurrences de ANO 1.
Dans les forums, j'ai vu des allusions à la fonction FREQUENCE que je ne sais pas utiliser, et à la fonction UNIQUE, que je ne trouve pas.
Auriez-vous des idées ou des pistes pour moi ?

Merci !

17 réponses

Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Re et salut à vaucluse,

Comme quoi il vaut mieux ne pas trop simplifier...
Alors j'essaierai avec :
=SOMMEPROD((FREQUENCE((A2:A10="ANO")*B2:B10;B2:B10)>0)*1)

eric
4
Merci

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

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
Re
alors dans ce cas, j'ai une solution, mais je pense que Eric fera mieux, car la mienne passe par une colonne de renvoi:
soit d'après l'exemple, en C1:
=SI(ET(A1="ANO";NB.SI($B$1:B1;B1)=1);1;0)
en bloquant bien au bon endroit le B de $B$1 (un seul) et à tirer sur la hauteur du champ
il ne devrait plus rester qu'à faire la somme de la colonne C pour avoir le bon résulat.
Crdlmnt
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Celle-ci devrait marcher dans la mesure ou tu as au moins 1 couple faux (si ça peut être le cas tu peux inclure la ligne de titre) :
=SOMMEPROD((FREQUENCE((A2:A10="ANO")*B2:B10;LIGNE(1:10)-1)>0)*1)-1
remplacer le 10 par (valeur maxi en A) +1

eric
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Re,

Si tu n'as QUE des ANO 1 il te répondra 0.
Inclure le titre génère une erreur, inclus plutôt toujours au moins une ligne vide
Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
Bonjour
peut être si, j'ai bien compris:
=SOMMEPROD((A1:A100="ANO")*(B1:B100=1))
mais.... si j'ai bien compris.
A ajuster à vos champs , bien sur!
je crois par ailleurs que sur 2007; il y a un code NB.SI.ENS que je ne manipule pas , étant sur 2003)
Crdflmnt
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Bonjour,

Ne calcule que sur la colonne B :
=SOMMEPROD((FREQUENCE(B2:B10;B2:B10)>0)*1)

eric
Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
RE je reviens on message précédent, j'ai compis un peu tard! t somme prod ne peut pas fonctionner là:
D'ou ma question à Eric:
ta proposition marche t'elle si il y a des chiffres en face des autres codes?

Bien amicalement
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Vaucluse > J'y ai pensé aussi, mais "1" n'est qu'un exemple. Ce dont j'ai besoin que c'est qu'une ANO avec un même numéro ne soit comptée qu'une seule fois...

eriiic >

Effectivement, ta formule fonctionne. Merci :)
Mais compliquons un petit peu l'exercice (parce que j'ai bien sûr livré la version simplifiée dans mon précédent post).
La colonne A peut contenir d'autres valeurs que OK et ANO, et la colonne B peut contenir des valeurs pour d'autres types d'occurences, comme dans le nouvel exemple qui suit :

A B
ANO 1
OK
QR 1
OK
ANO 2
OK
ANO 1
ANO 3
OK
OK
QR 4

Dans cet exemple ta formule me renvoies un résultat différent de celui que j'attends.
J'ai tenté qqc comme ceci :

=SOMMEPROD((A:A="ANO")*(FREQUENCE(B:B;B:B)>0)*1)

qui me renvoie un résultat à N/A et je n'arrive pas à voir pourquoi...
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
;) Bien vu Vaucluse
Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
Et bien voila, en fait c'était tout simple et j'étais sur que tu ferais mieux :-)
Salut Eric
Au plaisir
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Magnifique.
Merci les garçons !

Je mets ma question en résolu :)
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Ben tiens... Non en fait.
Ca me met un résultat à 1, même quand j'ai rien...
Messages postés
26301
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
27 novembre 2021
6 127
Woui... j'en reviens à ma troisème colonne, qui marche à priori
(à condition que la colonne B aient des cellules chiffrées ou vides, mais pas de 0, sinon, il faiut u n argument de plus en colonne C)
j'essaie mais j'ai le sentiment que le code FREQUENCE ne renvoie pas toujours le même calcul. Ca fait d'ailleurs longtemps que je cherche à comprendre comment il fonctionne...!
mais non, je ne saisis pas les résultats suivant les cas de figures!
Il semble qu'il rajoute un quand il ne trouve rfein et soit exact quand il trroiuve quelquechoser!!

Toutes explications précises sur cette formule seraient les bien venues, et surtout sur ce qu'excel appelle "FREQUENCE"
Au secour Eric, merci d'avance?

Crdlmnt
Messages postés
24221
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 novembre 2021
6 974
Effictivement il y a un os, frequence() compte les valeurs inférieures ou égales aux valeurs fournies en 2nd paramètre...
Donc il compte 11 zéros qui devient VRAI puis 1 avec le sommeprod()
Plus le temps maintenant, ce soir peut-être

eric
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Ca marche, j'attends de tes nouvelles, pour l'instant je passe sur autre chose. Merci pour ton aide !
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Re eriiiiic,

Je te remercie vraiment, cette fois-ci, j'ai l'impression que ça fait pile poil ce que je voulais.
Qu'est-ce que tu entends par "avoir au moins un couple faux" ?

Parce que j'ai l'impression que ça fonctionne quel que soit le cas de figure...
Messages postés
341
Date d'inscription
lundi 20 avril 2009
Statut
Membre
Dernière intervention
6 mars 2017
54
Oki !
Je prends ça en compte. Ca ne devrait pas se produire souvent, n'avoir qu'une seule anomalie, c'est plutôt rare ;), mais je le note quand même.

Merci !!