Nombre de valeurs dans un TCD

Bonjour,
J'ai besoin de trouver le nombre de valeurs distinctes contenues dans une colonne selon un critère de recherche (contenu dans une autre colonne). Le résultat doit apparaître dans un tableau croisé. Exemple :
Article Prix
A 219,00
A 195,00
A 195,00
A 219,00
B 47,20
B 46,50
B 46,50
B 46,50
C 29,00
C 29,00
C 29,00
C 29,00
D 0,00
D 73,26
D 73,26
D 73,26

Résultats souhaités dans un tableau croisé (nombre de valeurs par article, valeur 0 ignorée) :

Article Prix
A 2,00
B 2,00
C 1,00
D 1,00
Bien entendu, mon fichier compte quelques milliers de lignes et quelques centaines d'articles...

Merci à tous

3 réponses

  1. Contributeur
    Bonjour

    sans précision sur
    selon un critère de recherche (contenu dans une autre colonne)

    que peut on faire ?
    0
    1. Bonjour,
      Ma demande n'était donc pas claire, sorry, je précise. Le critère de recherche est, dans le cas présenté ci-dessus, l'article (A, B, C ou D). C'est vrai qu'on ne voit pas bien qu'il s'agit de 2 colonnes (article et prix).
      J'espère que vous pourrez m'aider !
      Merci
      0
      1. Contributeur
        OK, merci

        Avec un TCD ca ne me parait pas évident.... par matricielles, plusieurs milliers de lignes l'interdit...Je regarde mais cela passera peut-^tre pas VBA...
        a+
        0
    2. bonsoir à tous,

      je propose une solution dont je ne connais pas la vitesse d'exécution, ni la taille:
      en prenant le problème à l'inverse, je calcule d'abord (col D) le nombre d'itérations identiques (prix col B) dans une plage d'"articles" identiques (col A)
      par division de ce résultat, j'obtiens (col E) un rapport
      les colonnes D et E peuvent être masquées
      le cumul par plages "articles" est obtenu soit en 1ere feuille ou n'importe où ailleurs, en face de chaque article

      col A: "articles"
      col B: "prix"
      col D: fx =SI(B2=0;"";NB.SI.ENS(A:A;A2;B:B;B2))
      col E: fx =SI(D2="";"";SI(D2>1;1/D2;1))
      (pour totaliser ces doublons respectifs à 1)

      Total: fx =SI(B2="";"";SOMME.SI(A:A;A2;E:E))

      les formules sont extensibles à l'infini, si on peut dire

      attention aux valeurs 0 de prix qui ne sont jamais prises en compte, même si c'est un prix !

      dites-moi ce que vous en pensez en toute objectivité et si ça peut être utile

      bonne soirée à tous
      amicalement

      papy (:-)
      0
      1. re

        ci-joint pour fichier-test

        http://www.cijoint.fr/cjlink.php?file=cj201110/cijrxUCKax.xls

        la précision est absolue: il y aura différence entre 14.999999 et 15.00
        si les prix proviennent d'un calcul, mieux vaut adjoindre la fx ARRONDI*

        le fichier est à modifier sur la col E par la formule ci dessus
        (autant de doublons que possible)

        amusez-vous bien

        papy (:-)

        Carpe Diem
        0