valeur la plus represente

S

steve

Guest
re bonjour le forum

je voudrais savoir comment faire pour connaitre les 5 references les plus representees dans une colonne. ces references sont du style HB54564FF ces a dire chiffre et texte. Merci
Si pas possible pour les 5 plus represente au moins la plus representee.... Merci
 

JeanMarie

XLDnaute Barbatruc
Bonjour

En supposant que les données se trouvent dans la plage A1:A31

La première formule matricielle (à valider par Ctrl+Shift+Entrer) pouvant retourner la première donnée la plus utilisée. A mettre en E1

=INDEX(A$1:A$31;EQUIV(MIN(1/NB.SI(A$1:A$31;A$1:A$31));1/NB.SI(A$1:A$31;A$1:A$31);0);1)

Pour les suivantes à mettre en E2, puis faire un glisser déposer vers le bas (à valider par Ctrl+Shift+Entrer).
=INDEX(A$1:A$31;EQUIV(MIN(1/SI(NB.SI(E$1:E1;A$1:A$31)=0;NB.SI(A$1:A$31;A$1:A$31);0,5));1/SI(NB.SI(E$1:E1;A$1:A$31)=0;NB.SI(A$1:A$31;A$1:A$31);0,5);0);1)

Attention ces formules n'acceptent pas les cellules vides dans la plage A1:A31.

@+Jean-Marie

Message édité par: JeanMarie, à: 18/08/2005 10:08
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Une autre
En D2 :
=INDEX(Noms;EQUIV(MAX(SI(NB.SI(D$1:D12;D12)=0;NB.SI(Noms;Noms)));NB.SI(Noms;Noms);0))
puis copier-coller jusqu'en D6

Formule matricielle, à valider par ctrl, maj et entrée
Laisser vide la cellule D1
Cette formule accepte les cellules vides dans la plage nommée 'Noms'
 
S

steve

Guest
bonjour et merci monique

je n'arrive pas a faire fonctionner cette formule matricielle j'ai bien nomme ma plage nom ca a marche une fois et puis apres plus rien. je suppose que le fait de recopier jusqu'en D6 permette d'avoir les 5 references les +vendus? correct ? J'ai mes donnees qui sont dans la plage A1 A31 j'ai bien valide par ctrl maj entree; derniere question pourquoi d$1 D12 je compend pas. merci pour ces explications. a bientot.
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Je ne sais pas quel copié-collé j'ai fait !

Celle-ci est la bonne, en D2 :
=INDEX(Noms;EQUIV(MAX(SI(NB.SI(D$1:D1;Noms)=0;NB.SI(Noms;Noms)));SI(NB.SI(D$1:D1;Noms)=0;NB.SI(Noms;Noms));0))

A copier ensuite de D3 à D6
En D6, ça donne :
=INDEX(Noms;EQUIV(MAX(SI(NB.SI(D$1:D5;Noms)=0;NB.SI(Noms;Noms)));SI(NB.SI(D$1:D5;Noms)=0;NB.SI(Noms;Noms));0))

En laissant D1 vide, la formule compte si les noms sont déjà dans la plage du dessus,
si oui, le nom est 'éliminé' de la plage 'Noms'
sinon, la formule prend le plus fréquent des noms qui restent

Si tu n'avais voulu que le nom le plus répandu :
=INDEX(Noms;EQUIV(MAX(NB.SI(Noms;Noms));NB.SI(Noms;Noms);0))
 

chris

XLDnaute Barbatruc
Bonjour
C'est justement ce qui différencie une formule 'standard' d'une formule matricielle et oblige donc EXcel a effectuer le calcul d'une autre manière.
Ne me demande pas ce qu'est le calcul matriciel : si je m'en sers parfois (assez modestement), je serais bien incapable de l'expliquer.
:woohoo:
 

JeanMarie

XLDnaute Barbatruc
Bonjour

Je vais essayé de t'expliquer ce qu'est une formule matricielle, (ce n'est gagné avec mon bafouillage).

Une matrice est alimentée par le contenu d'une plage de cellules ou par {1.2.3;4.5.6}.

Un petit exemple assez simple, Si je place dans A1 la valeur 1, dans A2 la valeur 2, dans A3 la valeur 3, dans A4 la valeur 4, dans A5 la valeur 5, et que je fasse =MOYENNE(A1:A5) cela équivaut à faire =MOYENNE({1;2;3;4;5})
MOYENNE retourne une seule valeur, donc il est unitule de la valider par Ctrl+Shift+Ligne

Si j'augmente le nombre de valeurs, je pourrais passer par une formule matricielle
=MOYENNE(LIGNE(A1:A1000))
en la validant par Ctrl+Shift+Entrer, la fonction LIGNE(...) va retourner une matrice à la fonction MOYENNE, qui correspondra à{Ligne(A1);Ligne(A2);Ligne(A3);Ligne(A4);Ligne(A5);Ligne(A6);.....;Ligne(A997);Ligne(A998);Ligne(A999);Ligne(A1000)}

J'espère que ce simple exemple va t'aider à comprendre le pourquoi de la chose, lol

A NOTER : le ; représente un séparateur de ligne, le . représente un séparateur de colonne.

Pour les explications de la formule de Monique qui est plus simple que la mienne, regarde dans le fichier joint.

@+Jean-Marie [file name=ValeurRepresentee.zip size=5022]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ValeurRepresentee.zip[/file]
 

Pièces jointes

  • ValeurRepresentee.zip
    4.9 KB · Affichages: 70

bencourriel

XLDnaute Occasionnel
Bonjour Jean Marie, chris et les autres.

Merci pour votre temps, mais je ne suis pas sûr de bien saisir.

J'ai essayé dans une feuille de calculs de faire une formule =MOYENNE(LIGNE(A1:A5)) et dans l'autre {=MOYENNE(LIGNE(A1:A5))} et il me donne deux résultats. L'un me donne 1 et l'autre 3. Je comprends que le premier ne donne que le numéro de la ligne de la première entrée alors que la deuxième formule donne la vrai moyenne du nombre de lignes.

Mais je m'explique mal le fonctionnement et la logique derrière ces fameuses {...}. :eek:

À quelle autre fin peut-on utiliser ces {...}. J'ai jeté un oeil dans le fichier joint mais je ne suis pas certain de bien comprendre...

Merci à l'avance. ;)
 

JeanMarie

XLDnaute Barbatruc
Re...

Ta compression sur le petit exemple est correcte.

A quoi peuvent-elles servir ces 'foutues' fonctions matricielles ! Si tu devais résoudre le problème de Steve, sans les matricielles, tu devrais utiliser autant de colonnes que de valeurs uniques qui se trouvent dans la plage, comme dans le fichier. Elles économisent des colonnes intermédiaires.

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 863
Membres
102 688
dernier inscrit
Biquet78