Trier des nombres selon leur fréquence

Bonsoir

Pourriez-vous m’aider a trier une série de nombres et ce selon leur fréquence d’apparition (si possible la solution en formules excel).Par exemple :

1-Situation de départ.

* Dans les cellules de la ligne A1:T1, (20) nombres sont disposés en vrac comme suit : (1-6-5-2-7-4-1-9-7-12-15-7-14-13-1-5-4-14-3-1)

Remarquez-bien que :

* Les nombres en question sont de 1 a 20 .

*Il ya des nombres qui sont cités plus d’une fois( 4 répétitions au maximum).

*Il ya des nombres(de la liste 1 a 20) qui sont absents.

2-Résultat souhaité.

*Dans les cellules U1:W1,reproduire les nombres cités 4 fois dans la ligne A1:T1.

*Dans les cellules X1:AB1,reproduire les nombres cités 3 fois dans la ligne A1:T1.

*Dans les cellules AC1:AJ1,reproduire les nombres cités 2 fois dans la ligne A1:T1.

*Dans les cellules AK1:AU1,reproduire les nombres cités 1 fois dans la ligne A1:T1.

*Dans les cellules AV1:BE1,reproduire les nombres non cités dans la ligne A1:T1 et qui figurent dans la liste de 1 a 20).

Voir le fichier joint pour plus de précision.

Merci

98tri.xlsx (12.99 Ko)

Salut le forum

Une solution pour débuter la discussion, il manque la plage AV2:BE2 à trouver

Sélectionne les cellules U2:W2 
=GRANDE.VALEUR(((NB.SI(plage;plage)=4)*(plage));{1.5.9})

Sélectionne les cellules X2:AB2 
=GRANDE.VALEUR(((NB.SI(plage;plage)=3)*(plage));{1.4.7.10.13})

Sélectionne les cellules AC2:AJ2 
=GRANDE.VALEUR(((NB.SI(plage;plage)=2)*(plage));{1.3.5.7.9.11.13.15})

Sélectionne les cellules AK2:AU2 
=GRANDE.VALEUR(((NB.SI(plage;plage)=1)*(plage));{1.2.3.4.5.6.7.8.9.10.11})

Formule matricielle à valider par Ctrl + Shift + Enter

Mytå

Salut Mytå

Un tres grand merci pour ton aide si précieuse.

Dans un premier temps je me suis trompé en essayant d'appliquer la formule sur la 1ere ligne ce n'est qu'apres que je me suis apercu que tu m'indiquais dans ta réponse la 2eme ligne (n'est -il pas possible de l'appliquer sur la 1ere ligne?)

Je t'en suis tres reconnaissant.

Re le forum

Tu peux l'appliquer sur la ligne que tu veux, il suffit de remplacer "plage" par l'adresse des cellules.

Mytå

Salut tout le monde,

Ci-joint un essai avec la dernière formule.

105lastformule.zip (9.96 Ko)

(tu peux recopier vers le bas les formules présentes en (U1:BE1) )

Cordialement

Bonjour Mytå , ketamacanna ,

ketamacanna ta proposition répond exactement a ce que je cherchais.

Merci infiniment pour ton aide.

Mytå, j'ai une petite précision a te demander:

Dans la 1ere formule proposée :

=GRANDE.VALEUR(((NB.SI(plage;plage)=4)*(plage));{1.5.9})

les numéros 1.5.9 indiquent les trois colonnes ou sera appliquée la formule .

Peux-tu m'expliquer a quoi renvoient ces numéros et ce en vue d'une eventuelle adaptation a d'autres situations.

Tandis que dans la 4eme formule

=GRANDE.VALEUR(((NB.SI(plage;plage)=1)*(plage));{1.2.3.4.5.6.7.8.9.10.11})

les numéros 1.2.3.4.5.6.7.8.9.10.11 indiquent effectivement les 11 colonnes de la plage ou sera appliquée la formule en question.

Merci

Re,

Dans la formule de Mytå :

=GRANDE.VALEUR(((NB.SI(plage;plage)=4)*(plage));{1.5.9})

Les 1,5,9 correspondent respectivement à la première plus grande valeur, la cinquième plus grande valeur, et la neuvième plus grande valeur.

En effet, imagine que tu as comme liste (et que tu utilises la formule ci-dessus : pour les chiffres saisis 4 fois)

1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 3 - 3 - 3 - 3......

Tu remarquera ci-dessus que la 'première' plus grande valeur = 3

La deuxième plus grande valeur = 3

La troisième plus grande valeur = 3

La quatrième plus grande valeur = 3

La cinquième plus grande valeur est 2.

La neuvième plus grande valeur est 1.

Ainsi, {1.5.9} : dans ce cas te permet de récupérer 3,2,1

ps : il faut remercier Myta, moi, je n'ai presque rien fait dans l'histoire

Cordialement

Bonjour ketamacanna

C'est tres bien expliqué,A présent je comprends de quoi il s'agit.Ton aide est aussi précieuse que celle de Myta.

Merci infiniment.

Bonne journée.

Re le forum

On pourrait modifier la formule pour permettre la recopie vers la droite

Au-lieu de saisir en U2:W2

=GRANDE.VALEUR(((NB.SI(plage;plage)=4)*(plage));{1.5.9})

On utilise

=GRANDE.VALEUR(((NB.SI(plage;plage)=4)*(plage));(COLONNES($U:U)-1)*4+1)

Bonsoir

Merci Mytå pour cette variante.

Je tiens ,par la meme occasion,a souligner le climat d'aide et de soutien qui caractérise ce forum surtout vis a vis de débutants comme moi.

Vous avez toi et ketamacanna toute ma reconnaissance.

Salutations

Rechercher des sujets similaires à "trier nombres leur frequence"