Dénombrer le nombre de références (fréquences)

Résolu
Rachellaaa Messages postés 24 Statut Membre -  
Rachellaaa Messages postés 24 Statut Membre -
Bonjour,

Pourriez-vous svp m’aider concernant une formule?

La mise en situation est la suivante :

Colonne A : une liste de références qui est amenée à être enrichie pas la suite et où peut figurer plusieurs fois la même référence

Sur une 2ème feuille je souhaiterais calculer le nombre de références qui reviennent qu’une seule fois, puis dans un deuxième temps le nombre de références qui reviennent plus d’une fois.

Et enfin peut-être si c’est possible le nombre de références qui reviennent 2fois, 3fois etc....

Merci par avance pour votre réponse car ça fait un moment que je cherche en vain.

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Voir avec une fonction personnalisée en VBA
    ALT+F11 pour ouvrir l'éditeurVBA puis Insertion et Module - Copier coller la macro suivante dans la page et fermer l'éditeur
    Function denomref(plage As Range, nb As Integer)
    For Each cell In plage
    ref = cell.Value
    n = Application.WorksheetFunction.CountIf(plage, ref)
    If n = nb Then Total = Total + 1 / nb
    Next
    denomref = Total
    End Function


    S'utilise comme n'importe qu'elle fonction avec la syntaxe
    =(plage; nombre de fois)
    exemple =(A1:A100;2) pour avoir le nombre de références revenant 2 fois dans la plage A1:A100

    Cdlmnt
    Via
    0
    1. Rachellaaa Messages postés 24 Statut Membre
       
      Re Bonjour,

      Ça fonctionne! Merci beaucoup!!! je n’y serai jamais parvenue seule car je ne suis pas à l’aise avec les vba. Mais grâce à votre code et vos explications j’y suis parvenue! Donc vraiment merci!

      J’aurais svp une petite précision à vous demander dans le cas où je souhaite calculer le nombre de référence qui reviennent plus d’une seule fois, qu’est ce que je dois ajouter à la formule? J’ai essayé >1 mais ça ne fonctionne pas.

      Merci encore pour votre réponse! Bon week-end

      B
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      c'est le 2ème paramètre qu'il faut faire varier :
      exemple =(A1:A100;2) pour avoir le nombre de références revenant 2 fois dans la plage A1:A100
      eric
      0
    3. Rachellaaa Messages postés 24 Statut Membre
       
      Bonjour Eriic,

      Oui ça j’avais compris désolé j’ai dû mal m’exprimer. J’ai besoin d’englober le nombre de références de celles qui reviennent plus d’1 fois.

      J’espère avoir été plus précise!

      Et merci encore pour vos réponses!
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Dans ce cas il faut compter toutes doublons, triplons etc
    Donc avec une autre macro qui prend en compte jusqu'à 100 valeurs identiques
    Function denomrefsup(plage As Range)
    For Each cell In plage
    ref = cell.Value
    n = Application.WorksheetFunction.CountIf(plage, ref)
    For t = 2 To 100 'pour les occurrences se retrouvant 2 fois, 3 fois ....100 fois, augmenter le max de 100 si nécessaire
    If n = t Then Total = Total + 1 / t
    Next
    Next
    denomrefsup = Total
    End Function

    La syntaxe de la fonction ici est plus simple il suffit d'indiquer la plage à traiter , ex : denomrefsup(A1:A:250)

    Cdlmnt
    Via

    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut via,

      Je crains de dire une bêtise car il est tard, mais que penses-tu de compter ceux listé 1 fois et les déduire du total ? :-)
      eric
      0
    2. Rachellaaa Messages postés 24 Statut Membre
       
      Bonjour Via et Eriiic,

      Merci beaucoup pour votre aide le deuxième codage fonctionne également!!! Et oui malgré l’heure Eriiic vous avez raison ça fonctionne aussi!
      Encore une fois je vous remercie sincèrement du temps que vous m’avez consacré!

      Bonne journée à vous!
      0