Compter le nombre de lignes avec des valeurs différentes

Résolu
Bonjour,

Je solicite votre aide car je ne trouve pas comment je peux afficher à chaque ligne le nombre de fois où apparait une lettre dans la colonne B tout en y soustrayant le nombre de fois où j'ai un doublon en associant les colonnes A et B. Je pense l'exemple suivant plus parlant :

ColA ColB Resultat attendu par ligne
1 X 3 car il y 4*"X" mais 2*"1 X"
2 Y 2 car il y a 4*"Y" mais 2*"2 X" et 2*"3 Y"
3 Z 2
1 Z 2
2 Y 2
3 X 3
1 X 3
2 X 3
3 Y 2
3 Y 2

J'éspère avoir été assez clair et vous remercie d'avance pour votre aide.

Cordialement
GRM

5 réponses

  1. Contributeur Ambassadeur
    bonsoir, as-tu une idée de comment résoudre une partie:
    "afficher à chaque ligne le nombre de fois où apparaît une lettre dans la colonne B"?
    nous pourrions ensuite t'aider à progresser vers la solution complète.
    0
    1. Bonjour,

      En ce plaçant dans la cellule C1 inscrire le code :
      =NB.SI($B$1:$B$10;B1)

      Cette formule compte le nombre de fois où la valeur inscrite en B1 est dans la colonne B. Il suffit ensuite la formule sur toute la colonne.

      Cordialement
      0
      1. Contributeur Ambassadeur
        Tu pourrais peut-être ajouter une colonne qui serait l'association de la colonne A et de la colonne B.
        En faisant cela dans la colonne D, tu aurais ton résultat complet en faisant:
        =NB.SI($B$1:$B$10;B1)-NB.SI($D$1:$D$10;D1)

        Qu'en penses-tu?
        0
      2. @yg_beMerci pour ton aide mais j'ai bien peur que cette formule ne donne pas le résultat que j'attents. Le problème vient du fait que l'on soustrait (dans ce cas) un seul type de doublon alors qu'il pourrait en avoir plusieurs. Par exemple, prennons la ligne 2 de mon exemple :" il y a 4*"Y" mais 2*"2 Y" et 2*"3 Y" " le résultat attendu serrait donc 2 mais avec ce calcul on aurait 3 car on ne soustrait pas le deuxième 3Y.
        0
      3. Contributeur Ambassadeur
        @GRMas-tu testé ma proposition?
        chez moi, cela donne 2 pour la ligne 2.
        0
      4. @yg_beoui j'ai bien testé cette proposition :) et cela ne fonctionne pas chez moi.
        J'en profite pour vous remercier (tous) pour votre aide !
        0
    2. Contributeur
      Bonjour
      voyez ici, en passant par des opérations intermédiaire, en attendant mieux
      https://mon-partage.fr/f/2kq9i69J/
      explications dans le fichier
      crdlmnt

      La qualité de la réponse dépend surtout de la clarté de la question, merci!
      0
      1. Bonjour à tous

        A essayer en C1 la formule matricielle de Jacques Boisgontier :
        =NB(1/FREQUENCE(SI($B$1:$B$10=B1;$A$1:$A$10);$A$1:$A$10))
        à valider par CTRL+MAJ+Entrée (la formule se met automatiquement,t entre {} )

        Cdlmnt
        Via
        0
        1. Merci beaucoup Via et merci à tous les autres.
          Je ne comprends pas vraiment comment cette formule fonctionne mais elle fonctionne :)

          Très bonne journée à tous
          GRM
          0
      2. Contributeur Ambassadeur
        ton explication me semble bizarre.
        ne serait-ce pas plutôt:
        1 X 2 car il y 4*"X" moins 2*"1 X"
        2 Y 2 car il y a 4*"Y" moins 2*"2 Y"
        0