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 des éléments uniques avec des erreurs ? [XL-2007]


Sujet :

Excel

  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut Compter des éléments uniques avec des erreurs ?
    Bonjour à tous et merci de votre temps et de votre aide.

    J'ai une formule qui compte les éléments uniques dans une plage de données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Nb [" & L$4 & "] : " & ROUND(SUMPRODUCT((L$9:L$1606<>"")/COUNTIF(L$9:L$1606,L$9:L$1606&"")),0)
    Elle fonctionne très bien sauf si j'ai des #N/A dans mes données.

    J'avoue que je ne comprend pas complètement comment fonctionne ma formule, c'est un copié/collé d'internet.

    J'ai essayé diverses combinaisons de IsError() et de And() mais j'obtiens soit 0 soit #N/A.

    Est-ce qu'il y a un moyen que Excel compte les éléments uniques sans tenir compte des erreurs ?

    A+

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    N'y aurait-il pas moyen de régler le problème à la source ?
    Si tu as des NA, ça veut sans doute dire que les données de cette formule dont elles-même des formules.
    Ne pourrais-tu as les inclure dans un SIERREUR ou un SI(ESTNA( ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Bon après plusieurs heures d'essais/erreurs cela ne semble pas possible.

    Voici comment je m'en suis tiré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Option Explicit
     
    Public Function CompterUnique(ByRef prmPlage As Range) As Long
        'Compte les valeurs uniques non erreur et non vide
     
        Dim result As Long
     
        Dim cellule As Range
        Dim dictionnaire As Object
        Set dictionnaire = CreateObject("Scripting.Dictionary")
     
        For Each cellule In prmPlage.Cells
     
            If Not IsError(cellule) Then
     
                If Trim(cellule & "") <> "" Then
     
                    If Not dictionnaire.exists(CStr(cellule.Value)) Then
                        Call dictionnaire.Add(CStr(cellule.Value), Empty)
                    End If
     
                End If
     
            End If
     
        Next
     
        result = dictionnaire.Count
        Call dictionnaire.RemoveAll
        Set dictionnaire = Nothing
        CompterUnique = result
    End Function
    A+

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    La recherche d'erreur peut être bien plus rapide je pense, du style (non testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim ErrRng As Range
    Set ErrRng = prmPlage.SpecialCells(xlCellTypeConstants , xlErrors).

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

Discussions similaires

  1. [GD] Problème avec des fonctions qui créent des éléments dans une image.
    Par magnus2229 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/07/2011, 10h38
  2. Index unique pas unique avec des nulls ?
    Par marot_r dans le forum Modélisation
    Réponses: 6
    Dernier message: 17/03/2008, 20h53
  3. Réponses: 2
    Dernier message: 26/06/2007, 16h40
  4. Concaténer plusieurs champs avec des valeurs uniques
    Par stefposs dans le forum VBA Access
    Réponses: 10
    Dernier message: 30/05/2007, 18h42
  5. [SQL] Problemes avec des champs uniques
    Par 000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/06/2006, 14h28

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