IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Compter le nombre de lignes sans les doublons


Sujet :

Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut Compter le nombre de lignes sans les doublons
    Bonjour,

    Je dispose d'un document excel dans lequel j'ai une colonne où existent des doublons.

    Je voudrais compter le nombres de valeurs que j'ai, sans les doublons.


    Un exemple :

    J'ai les valeurs :

    9, 100, 9, 78, 100, 78, 100, 22, 9

    Je voudrais avoir en bas de ma colonne : 4
    qui correspond au nombre total de valeurs comptées "non doublonnées".

    Merci pour vos éventuelles réponses.

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Tu dois créer une colonne qui pourra compter tes doublons mais ilf aut trier par cette colonne ou tu as les valeurs, sinon ça marchera pas

    Tu crée une colonne avec comme formule, par exemple :

    Et tu fais la somme sur cette colonne, et normalement tu auras le nombre de valeurs non doublonnées
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    =SOMMEPROD(1/NB.SI(A1:A10;A1:A10))
    Cette formule n'accepte pas de cellules vides, bien du texte

    =SOMMEPROD((FREQUENCE(A1:A10;A1:A10)>0)*1)
    Cette formule n'accepte pas du texte, bien des cellules vides

    =SOMMEPROD(SI(A1:A10<>"";1/NB.SI(A1:A10;A1:A10)))
    Cette formule est à valider en matricielle (Ctrl+Maj+Entrée)
    Elle accepte du texte et des cellules vides.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par ullan
    Bonjour,

    =SOMMEPROD(1/NB.SI(A1:A10;A1:A10))
    Cette formule n'accepte pas de cellules vides, bien du texte

    =SOMMEPROD((FREQUENCE(A1:A10;A1:A10)>0)*1)
    Cette formule n'accepte pas du texte, bien des cellules vides

    =SOMMEPROD(SI(A1:A10<>"";1/NB.SI(A1:A10;A1:A10)))
    Cette formule est à valider en matricielle (Ctrl+Maj+Entrée)
    Elle accepte du texte et des cellules vides.

    Ta dernière formule me convient très bien.

    En revanche, j'aimerais aussi utiliser une formule similaire pour compter sans les doublons, mais une fois qu'on a appliquer un filtre sur le tableau.

    En gros, il faut compter sans les doublons, et en prenant en compte le filtre.

    J'imagine que c'est un espèce de croisement entre ta formule et la fonction "NBVAL".

    Quelqu'un a-t'il une idée?


  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Re,

    C'est pas les idées qui manquent, mais il y a filtrer et filtrer !

    Normalement, si tu filtres, tu n'as que des doublons, à moins que tu filtres sur une colonne et tu veux compter dans une autre.

    Soit quelque peu plus explicite et mets un petit exemple en pièce jointe en précisant le résultat que tu souhaites obtenir.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    Voici un exemple.

    Dans la colonne "chiffres", j'ai mis en bas la formule que tu m'as donnée précédemment (pour compter le nombre de valeurs sans prendre en compte les doublons).

    A présent, j'aimerais que lorsqu'on trie la colonne "lettres" par MM1, on ait en dessous le total de lignes comprenant MM1, mais en tenant compte du fait qu'il ne faut pas les doublons de la colonne "chiffres".

    Dans l'exemple en pièce jointe, ce résultat pour MM1 serait égal à 4.

    Fichiers attachés Fichiers attachés

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Re,

    Je ne le vois pas (encore) par une seule formule.

    Par contre :
    Filtre élaboré avec un "copier vers un autre emplacement" (par exemple E1) et une "extraction sans doublons"
    Puis un filtre automatique sur la 2ème colonne (F)
    Enfin la formule : =SOUS.TOTAL(3;F2:F7)

  8. #8
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    Si c'est le seul moyen, dans ce cas, je ferai ainsi.

    Merci bien pour tes réponses.

    Si tu arrives à voir de quelle manière réaliser cela en 1 seule formule, tiens-moi au courant stp.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Evidemment !

    Il me semble que cela doit être faisable, et plus rapide, avec une petite colonne supplémentaire.

    Mais comme la nuit porte conseil, ... patience.

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Re,

    Solution assez simple, même simpliste, qui renvoie le résultat exact et qui permet des lignes vides.

    Il ne reste plus qu'à transposer cette formule en matricielle de sorte à pouvoir supprimer la colonne supplémentaire, mais en attendant ...

  11. #11
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    C'est une solution intéressante.

    Néanmoins, dans l'hypothèse où je place un filtre automatique sur les colonnes, et que je n'affiche que les valeurs MM2, du coup ça ne fonctionne plus.




    Je vais provisoirement me rabattre sur l'autre solution que tu as proposée :
    Citation Envoyé par ullan
    Re,

    Je ne le vois pas (encore) par une seule formule.

    Par contre :
    Filtre élaboré avec un "copier vers un autre emplacement" (par exemple E1) et une "extraction sans doublons"
    Puis un filtre automatique sur la 2ème colonne (F)
    Enfin la formule : =SOUS.TOTAL(3;F2:F7)

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Je ne comprends pas ta remarque.

    En C1 j'ai MM1, je place un filtre sur la colonne B, je filtre cette colonne sur MM2, la formule en C21 renvoie le résultat suivant la valeur en C1.
    Pour avoir le résultat de MM2, on peut filtrer ou non, mais il faut modifier la condition en C1.

    J'ai vu, mais il a bien longtemps, une méthode (formule ou macro ?) pour que la cellule C1 prenne automatqiuement la valeur du critère du filtre.
    Est-ce cela ce que tu essaies de rélaiser ?

  13. #13
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par ullan
    Bonjour,

    Je ne comprends pas ta remarque.

    En C1 j'ai MM1, je place un filtre sur la colonne B, je filtre cette colonne sur MM2, la formule en C21 renvoie le résultat suivant la valeur en C1.
    Pour avoir le résultat de MM2, on peut filtrer ou non, mais il faut modifier la condition en C1.

    J'ai vu, mais il a bien longtemps, une méthode (formule ou macro ?) pour que la cellule C1 prenne automatqiuement la valeur du critère du filtre.
    Est-ce cela ce que tu essaies de rélaiser ?
    Je n'avais pas saisi entièrement ce que tu as fait, maintenant c'est plus clair.

    Et effectivement, l'idéal serait que le critère placé en C1 prenne automatiquement la valeur choisie dans le filtre automatique de la colonne B.

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    l'idéal serait que le critère placé en C1 prenne automatiquement la valeur choisie dans le filtre automatique de la colonne B.
    En utilisant le classeur d'Ullan, tu insères dans la cellule C1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(B1:B100;MIN(SI(SOUS.TOTAL(3;DECALER(B2;LIGNE(B1:B100);));LIGNE(B3:B100)));1)
    A valider par Ctrl+Maj+Entrée


    michel

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonsoir,

    Merci de m'avoir rafraichi la mémoire.
    C'est évident comme formule ... quand on l'a devant les yeux.

    Bonne soirée.

  16. #16
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 101
    Points
    101
    Par défaut
    Merci pour vos réponses, elles me seront certainement toutes utiles à l'avenir.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Compter le nombre de cellules sans doublons avec une condition
    Par Mimita64 dans le forum Excel
    Réponses: 2
    Dernier message: 02/12/2012, 20h39
  2. Compter le nombre de ligne d'un fichier sans le lire
    Par ffets dans le forum Général Python
    Réponses: 7
    Dernier message: 09/09/2008, 20h45
  3. Réponses: 1
    Dernier message: 06/08/2008, 12h04
  4. Compter sans les doublons
    Par sentenza dans le forum Access
    Réponses: 4
    Dernier message: 19/03/2007, 16h20
  5. Compter sans les doublons
    Par shinrei dans le forum ASP
    Réponses: 3
    Dernier message: 22/05/2006, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo