MacNOMODO

Où on cause du Mac - A consommer sans modération

 
PortailPortailAccueilRechercherRechercherFAQS'enregistrerMembresConnexion

Partagez | 
 

 Numbers : le tri qui tue

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
TG
Légende vivante
Légende vivante
avatar

Nombre de messages : 5529
Age : 54
Planète : Paradis n°2
Matos : MacBook Pro Unibody 2.54 late 2008 Mountain Lion • MacPlus • PIXMA iP4300 • Scanner Epson Photo 330
Date d'inscription : 12/11/2006

MessageSujet: Numbers : le tri qui tue   12/2/2009, 20:11

Numbers ou Excel d'ailleurs.

Tout le monde sait trier une colonne dans un tableur. Mais on peut souhaiter conserver l'ordre d'origine des données et disposer, dans une autre colonne, un autre tableau voire un autre fichier, des données triées. Et tant qu'à faire, triées en temps réel.

Pour tester ça, créons un tableau (idéalement sans ligne ni colonne d'en-tête, au sens Numbers) et entrons dans la colonne A une liste de nombres (ce que nous allons voir ne marche qu'avec des nombres). Peu importe d'ailleurs qu'ils soient contigus et même qu'ils occupent la colonne dès la cellule A1.

En B1, entrons la formule suivante :

Code:
=PETITE.VALEUR(A:A;1)

Le résultat est la plus petite valeur de la colonne A, donc, la première par ordre croissant. On obtient la même chose avec la formule =MIN(A)

En B2 entrons :

Code:
=PETITE.VALEUR(A:A;2)

Je ne fais pas de dessin : on obtient la deuxième valeur par ordre croissant.
À partir de là, on ne va quand même pas se taper les formules une à une. Il faut trouver le moyen d'automatiser la chose.

En B1, remplaçons la formule par :

Code:
=PETITE.VALEUR(A:A;LIGNE())

Il ne reste plus qu'à la dupliquer vers le bas aussi loin que nécessaire en tirant sur la poignée.
Si on n'a pas commencé la liste triée sur la première ligne, par exemple pour placer un titre en haut de la colonne, il faut intégrer un correcteur à la fonction LIGNE(). Admettons, pour l'exemple, que la liste commence donc en B2 et entrons dans cette cellule :

Code:
=PETITE.VALEUR(A:A;LIGNE(1:1))

L'astuce est de demander le numéro de ligne de la ligne 1. On connaît bien sûr la réponse mais le tableur comprend surtout qu'il a un travail à faire quand on lui demande de dupliquer la formule vers le bas.

L'autre astuce consiste à référencer la totalité de la colonne A par l'emploi de A:A au lieu d'indiquer une plage limitée telle que A5:A29. Pour l'évolution du tableau et la maintenance, c'est autrement plus efficace.

Il reste un détail inesthétique : les cellules contenant une formule au delà de la dernière valeur triée sont affublées d'un indicateur d'erreur. On essaie en effet de trouver une valeur qui n'existe pas (pas encore). On peut, si c'est nécessaire, se débarrasser de ce petit problème en protégeant la formule (comme tout le monde le sait, avec des si, on mettrait Paris en bouteille. Alors, une petite formule de rien du tout...). Remplaçons B2 par :

Code:
=SI(LIGNE(1:1)<=NBVAL(A:A);PETITE.VALEUR(A:A;LIGNE(1:1));"")

Il n'y a plus qu'à tirer pour trier comme disait A. Nagram

À suivre...
Revenir en haut Aller en bas
http://www.panoramio.com/user/616684
 
Numbers : le tri qui tue
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
MacNOMODO :: I n f o s :: Conseils, trucs & astuces-
Sauter vers: