Classement cellules non vides
#1
Aspirant XLPages

Inscription: 05/07/2011

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-06-2012 11h44
Bonjour ! Et merci à tous ceux qui pourront m'aider :)

J'aimerais faire un classement, le problème étant que j'ai des cellules vides.

C'est à dire:

Dans la colonne A j'ai des noms et dans la colonnes B des nombres
Admettons que j'ai 5 lignes de noms (correspondant à des personnes dans une certaine région) et puis dans la colonne B le nombre de membres de la famille habitant sous le même toit. Ensuite, la 6e ligne est un total des 5 lignes au dessus. Et puis rebelote.

A1 | Paul | 2
A2 | Pierre | 6
A3 | Jacques | 3
A4 | Jules | 4
A5 | Jean | 3
A6           | 18 (= ligne total des nombres au dessus)
A7 | Nick | 1
A8 | Pol | 0
A9 | Laura | 2
A10 |         |3 (= ligne total)
A11 | etc
A12 | etc
A13 | etc

Ensuite, je voudrais faire un classement sur le nombre, mais les lignes totaux doivent être exclus (puisque ça fausserait le classement). Le problème étant qu'avec la formule RANK il n'y a pas moyen de lui demander de ne pas compter les cellules vides. J'ai même essayé le un =IF(B1<>"";RANK(........) mais ça ne fonctionne pas, il ne mais certes pas les valeurs, mais ils sont quand même comptabilisés :(

Pourriez-vous m'aider ? Merci !
Nim

Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#2
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 14-06-2012 12h51
 Bonjour Nim

Une astuce consiste à transformer le type de la valeur de la formule des cumuls, en la passant de numérique en alphanumérique, la fonction RANG() ne prenant pas en compte les valeurs alphanumériques.

en A6 la formule pourrait s'écrire :
=SOMME(A1:A5)&""
ou
=TEXTE(SOMME(A1:A5);"##0,00")

La fonction TEXTE () permet d'appliquer un format particulier.

Tu devras peut-être neutralisé la fonction RANG() sur la ligne 6, la valeur alphanumérique provoquant un message d'erreur. Tu peux le contourner de cette manière 
=SI(ESTNUM(B6);RANG(B6;B$1:B$13);"")

Pour convertir une valeur alphanumérique tu as la formule =.....*1 ou la fonction CNUM(....)

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#3
Aspirant XLPages

Inscription: 05/07/2011

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-06-2012 13h02
Donc, si je comprends bien:

Le RANK ne prenant que les valeurs numériques, il s'agit de "transformer" les sommes en TEXTE pour qu'ainsi le RANK ne prennent plus ces valeurs en compte ?
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#4
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 14-06-2012 13h05
Re...

Oui, tu as bien compris. 

@+Jean-Marie 
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#5
Aspirant XLPages

Inscription: 05/07/2011

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 14-06-2012 14h54
Bon, on y est presque :) Mais en tout cas ça fonctionne.

Dernier soucis: Les ex aequo... Du coup, quand le 2 et le 3 ont le même nombre, dans mon top 10 il retrouve le 2 (il prend le premier qu'il trouve) mais le trois il met N/A puisqu'avec la formule ranking, il n'y a pas de 3 (normal ça ? )
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#6
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 16-06-2012 10h48
Bonjour Nim, Didier, le forum

Voilà ce qu'indique l'aide d'Excel sur la fonction RANG
Citation :
La fonction RANG attribue le même rang aux nombres en double. Cependant, la présence de nombres en double affecte le rang des nombres suivants. Par exemple, dans une liste de nombres entiers triés par ordre croissant, si le nombre 10 apparaît deux fois et porte le numéro de rang 5, le nombre 11 se verra attribuer le numéro de rang 7 (aucun nombre n'aura le rang 6).

Donc c'est un fonctionnement normal de la fonction.

Pour faire ce que tu désires, il faut rajouter à la valeur obtenue par la fonction RANG, le nombre d'occurrences de la valeur dans la plage située au dessus.

Si je me base sur l'exemple de ton premier post, en imaginant la fonction RANG dans la cellule C1.
Pour simplifier je ne prendrais que la partie RANG, en mettant la fonction SI de côté.
=RANG(B1;B$1:B$13;0)
Tu devras écrire en C2, puis faire un glisser vers le bas.
=RANG(B1;B$1:B$13;0)+NB.SI(B$1:B1;B2)
Attention à l'écrire de la plage de la fonction NB.SI, elle est semi-absolue, semi relative.

La plage que tu définis dans NB.SI peut dépendre du sens du tri de la fonction RANG.

Je te laisse intégrer la partie NB.SI dans la formule complète.

@+Jean-Marie 
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#7
Aspirant XLPages

Inscription: 05/07/2011

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 18-06-2012 15h38
Bonjour Jean-Marie.

Merci pour ta réponse.

Pourquoi rajouter un countif au rank ?

Si je rajoute le countif, ma formule finale ressemble à ça

=IF(ISNUMBER();(RANK()+COUNTIF();"")
(je n'ai pas mis les plages car ça ne correspond pas à l'exemple donné dans le premier post).

Mais pour les curieux:

=IF(ISNUMBER(AY6);(RANK(AY6;AY$6:AY$743)+COUNTIF($B$6:$B$737;B6));"")


J'ai rajouté donc le COUNTIF, mais cela ne résout pas mon problème malheureusement.

Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#8
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 18-06-2012 20h06
Bonsoir Nim, Didier, le forum

Ce n'est pas cela. Attention à la définition des plages.

En AZ6, la formule suivante :
=IF(ISNUMBER(AY6);(RANK(AY6;AY$6:AY$743);"")
En AZ7, la formule suivante, et un glisser vers le bas
=IF(ISNUMBER(AY7);(RANK(AY7;AY$6:AY$743)+COUNTIF($AY$6:$AY6;AY7));"")

C'est peut-être plus clair ainsi.

@+Jean-Marie

PS : Edit correction dans la plage NB.SI

Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#9
Aspirant XLPages

Inscription: 05/07/2011

Messages: 26

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 19-06-2012 09h00
Je n'ai pas encore eu le temps d'analyser les formules, je n'ai fait qu'un bête copier/coller pour l'instant.

Mais pour le résultat... Si je prends les 10 premiers, j'obtiens ça:

1
3
4
4
5
7
9
11
11
12

Il me manque donc le 2, j'ai 2 x le 4, pas de 6 pas 8, pas de 10, 2x11... bref, pas encore au point.

Dès que j'ai le temps, je vais voir comment est faite la formule pour comprendre :)

En tout cas, merci pour l'aide :)
Hors Ligne
Rapport   Haut 

Re: Classement cellules non vides
#10
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 19-06-2012 22h22
Bonsoir Nim, Didier, le Forum

Ci-joint un fichier, qui montre le résultat de la fonction RANG sur une petite liste de valeurs, et le résultat de la fonction RANG avec le rajout de la fonction NB.SI sur la même liste de valeurs.

@+Jean-Marie

Pièce jointe:
xlsx RANG.xlsx   [ Taille: 42.99 Ko - Téléchargements: 727 ]
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes