Excel : Décompte sans doublons d'une plage [Résolu/Fermé]

Signaler
-
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
-
Bonjour,


j'ai un souci avec une formule permettant de compter les mots sans doublons dans une colonne.
A partir de A3, j'ai une liste de plusieurs milliers de mots.
L'aide m'indique d'utiliser la formule suivante pour compter le nombre de mots ss doublon :
=SOMME(SI(FREQUENCE(EQUIV(A3:A10;A3:A10;0);EQUIV(A3:A10;A3:A10;0))>0;1))


Ma plage varie et la formule suivante me donne une erreur :
=SOMME(SI(FREQUENCE(EQUIV(A:A;A:A;0);EQUIV(A:A;A:A;0))>0;1))


Avez-vous une idée de ce que je dois mettre sans avoir à varier ma plage à chaque fois?

7 réponses

Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
Bonjour
on peut aussi tenter d'utiliser celle ci:
=SOMME(SI(A1:A1000<>"";1/NB.SI(A1:A1000;A1:A1000)))
pour un champ de A1 à A1000 à adapter.
cette formule est matricielle et doit être entrée avec la touche enter en maintenant ctrl et shift enfoncée pour qu'elle se retrouve entre accolades dans la barre de formule.
(ça doit être le cas aussi, je pense, des propositions précédentes)

maintenant pour ajuster la formule à une plage "variable" il faudrait savoir ce qui varie dans la plage!

crdlmnt
2
Merci

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

CCM 61756 internautes nous ont dit merci ce mois-ci

Ta formule semble me donner un résultat correcte à l'exception près que je me retrouve avec une décimale.

Merci
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
s'il; y a une décimale, c'est qu'elle n'est pas entrée en matricielle:
soit avec les touches ctrl + shift + enter.
crdlmnt
Messages postés
9496
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 juillet 2020
1 858
re
justement non
=DECALER(Feuil1!$A$3;0;0;NBVAL(Feuil1!$A:$A);1)
te definit la plage (unicolonne) commençant en A3 et dont le nb de ligne est le nb de valeurs de la colonne A
tu peux aussi remplacer NBVAL(Feuil1!A:A) par l'adresse d'une cellule contenant le nombre de ligne souhaité
bonne suite
Messages postés
16171
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 juillet 2020
2 989
Bonjour

au passage:
FREQUENCE compte le nombre de valeurs uniques et numériques
si on passe par formule iml faut utiliser la formule indiquée par Vaucluse...

Il es vrai aussi que les matricielles n'acceptent pas des colonnes ou ligne entière comme A:A

maintenant, au delà de 5000 lignes, le temps de calcul sera long...

j'va proposer une fonction personalisée, je reviens...
Messages postés
16171
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
9 juillet 2020
2 989
Je vois que je dérange mais je mets la fonction quand m^me

Function val_uniques(plage As Range) As Integer 
Set uniq = CreateObject("scripting.dictionary") 
Dim cellule As Range 
For Each cellule In plage 
     ref = cellule.Value 
     If Not uniq.exists(ref) Then 
          uniq.Add ref, ref 
     End If 
Next 
val_uniques = uniq.Count 

End Function 


on peut aussi filtrer en utilisant "unique" et compter le nombre de cellule mais je laisse le bébé à d'autres

Bonne soirée
Merci michel_m, vous ne dérangez personne ;)
Messages postés
9496
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
7 juillet 2020
1 858
bonjour,
c'est peut être le A:A qui ne lui plait pas
tu peux tenter de nommer plage (insertion/nom/definir) la zone (variable) à traiter
nom : plage
=DECALER(Feuil1!$A$3;0;0;NBVAL(Feuil1!A:A);1)
ta formule devient
=SOMME(SI(FREQUENCE(EQUIV(plage;plage;0);EQUIV(plage;plage;0))>0;1))
bonne suite
Bonjour et merci à vous de répondre

@Vaucluse : ce qui varie, c'est la longueur de la plage, parfois j'ai 5.000 mots dans ma colonne et parfois 6500.
Si je mets A1:A10000, la formule me renvoie #N/A.
N'est-il pas possible de compter le nb de ligne et de mettre A1:AX où X est le nb de lignes?

@ccm81 d'après ce que je comprends DECALER est pour un nb déterminée de lignes et c'est justement ce qui varie à chacun de mes calculs.
Messages postés
23381
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
6 231
Bonjour,

Relis mieux la réponse de ccm81, c'est justement pour définir une plage variable.

eric
Messages postés
25182
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
5 355
Comprend pas...
voyez ce modèle et dites nous ce qui diffère dans le votre?
http://www.cijoint.fr/cjlink.php?file=cj201105/cijTNwVGWb.xls
crdlmnt
Votre formule me donne un résultat satisfaisant. Mais par exemple pour une colonne de 5967 valeurs, j'obtiens 5592,47xxxx au lieu de 5592 :)

Mais cela me donne le bon entier.
Les 2 formules donnent le résultat escompté.

Je vous remercie d'avoir pris le temps de me répondre et de re-expliquer les subtilités que j'avais mal lu :)

Merci à vous