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

Signaler
-
Messages postés
25816
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 février 2021
-
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
25816
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 février 2021
5 782
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 65492 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
25816
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 février 2021
5 782
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
9673
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 février 2021
2 039
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
16390
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
22 février 2021
3 141
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
16390
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
22 février 2021
3 141
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
9673
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 février 2021
2 039
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
23887
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 février 2021
6 659
Bonjour,

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

eric
Messages postés
25816
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
22 février 2021
5 782
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