OVH Cloud OVH Cloud

Tier colonne par formule ?

10 réponses
Avatar
Tony
Bonjour à tous,

J'ai 3 colonnes (A B C) avec 20 lignes.
voici l'exemple..:

1 A B C
2
3 A1 * 20
4 A2 * 65
5 A3 * 35

Est il possible de faire une formule pour classer ses 3 colonnes en ordre
croissant en tenant compte de la colonne C ?
dans mon exemple : A1 reste premier A2 passe dernier et A3 devient deuxième.

Si il existe une formule dans quelle partie du tableau je doit l'écrire ?
et si je venai à modifier une valeur dans la colonne C : la formule referai
un tri sur le tableau ?

Merci d'avance.

10 réponses

Avatar
Bonjour tony,

il existe une fonction déjà toute faite dans excel pour
ce genre de problème.
Pour ce faire, il faut sélectioner ton tableau. Ensuite
aller dans l'onglet données sélectioner trier et enfine
demander ce qu'il faut.

Bien à toi Pignouf

Bonjour à tous,

J'ai 3 colonnes (A B C) avec 20 lignes.
voici l'exemple..:

1 A B C
2
3 A1 * 20
4 A2 * 65
5 A3 * 35

Est il possible de faire une formule pour classer ses 3
colonnes en ordre

croissant en tenant compte de la colonne C ?
dans mon exemple : A1 reste premier A2 passe dernier et
A3 devient deuxième.


Si il existe une formule dans quelle partie du tableau
je doit l'écrire ?

et si je venai à modifier une valeur dans la colonne C :
la formule referai

un tri sur le tableau ?

Merci d'avance.



.



Avatar
Tony
Merci pour ton aide,
mais la solution que tu propose ... je connais.

se que je voudais c'est que cette oppération de trier se face
automatiquement par une formule ou une autre possibilité.

Merci d'avance

a écrit dans le message de news:
036301c3d21a$e285fb80$

Bonjour tony,

il existe une fonction déjà toute faite dans excel pour
ce genre de problème.
Pour ce faire, il faut sélectioner ton tableau. Ensuite
aller dans l'onglet données sélectioner trier et enfine
demander ce qu'il faut.

Bien à toi Pignouf

Bonjour à tous,

J'ai 3 colonnes (A B C) avec 20 lignes.
voici l'exemple..:

1 A B C
2
3 A1 * 20
4 A2 * 65
5 A3 * 35

Est il possible de faire une formule pour classer ses 3
colonnes en ordre

croissant en tenant compte de la colonne C ?
dans mon exemple : A1 reste premier A2 passe dernier et
A3 devient deuxième.


Si il existe une formule dans quelle partie du tableau
je doit l'écrire ?

et si je venai à modifier une valeur dans la colonne C :
la formule referai

un tri sur le tableau ?

Merci d'avance.



.



Avatar
isabelle
bonjour Tony,

entre en cellule F1 la formulle suivante
=PETITE.VALEUR($C$1:$C$3;LIGNE()+1-LIGNE($A$1))
et recopier vers le bas, modifier $C$3 pour la plage réel

entre en cellule D1 la formulle suivante
=INDEX(A:A;EQUIV($F1;$C:$C;0))
recopier sur la colonne E et vers le bas

isabelle


Merci pour ton aide,
mais la solution que tu propose ... je connais.

se que je voudais c'est que cette oppération de trier se face
automatiquement par une formule ou une autre possibilité.

Merci d'avance

a écrit dans le message de news:
036301c3d21a$e285fb80$

Bonjour tony,

il existe une fonction déjà toute faite dans excel pour
ce genre de problème.
Pour ce faire, il faut sélectioner ton tableau. Ensuite
aller dans l'onglet données sélectioner trier et enfine
demander ce qu'il faut.

Bien à toi Pignouf

Bonjour à tous,

J'ai 3 colonnes (A B C) avec 20 lignes.
voici l'exemple..:

1 A B C
2
3 A1 * 20
4 A2 * 65
5 A3 * 35

Est il possible de faire une formule pour classer ses 3
colonnes en ordre

croissant en tenant compte de la colonne C ?
dans mon exemple : A1 reste premier A2 passe dernier et
A3 devient deuxième.


Si il existe une formule dans quelle partie du tableau
je doit l'écrire ?

et si je venai à modifier une valeur dans la colonne C :
la formule referai

un tri sur le tableau ?

Merci d'avance.



.





Avatar
Daniel.M
Bonjour Isabelle, Tony,

S'il y a des doublons, Tony avertira. :-)

Salutations,

Daniel M.

"isabelle" wrote in message
news:
bonjour Tony,

entre en cellule F1 la formulle suivante
=PETITE.VALEUR($C$1:$C$3;LIGNE()+1-LIGNE($A$1))
et recopier vers le bas, modifier $C$3 pour la plage réel

entre en cellule D1 la formulle suivante
=INDEX(A:A;EQUIV($F1;$C:$C;0))
recopier sur la colonne E et vers le bas

isabelle


Avatar
Tony
Merci Isabelle,

mais comme Daniel le soulignait (problème avec les doublons ou plus)
j'ai fait un petit teste avec les 2 formules cela marche très bien mais dès
qu'il y à un ou des doublons il y à un problème?

Comment faire pour résoudre se problème ?
y à t'il une façon plus simple pour trier automatiquement dans les colonnes
(sans passé par le menu : donnée:trier) car j'ai un peux dur à comprendre le
fonctionnement de ses 2 formules.

Merci d'avance.

"Daniel.M" a écrit dans le message de
news: #
Bonjour Isabelle, Tony,

S'il y a des doublons, Tony avertira. :-)

Salutations,

Daniel M.

"isabelle" wrote in message
news:
bonjour Tony,

entre en cellule F1 la formulle suivante
=PETITE.VALEUR($C$1:$C$3;LIGNE()+1-LIGNE($A$1))
et recopier vers le bas, modifier $C$3 pour la plage réel

entre en cellule D1 la formulle suivante
=INDEX(A:A;EQUIV($F1;$C:$C;0))
recopier sur la colonne E et vers le bas

isabelle






Avatar
Daniel.M
Salut,

Avec la même structure qu'Isabelle et en supposant que tu n'as pas de petite
fractions dans tes nombres en colonne C,

En F1, la MATRICIELLE suivante (Ctrl-Maj-Entrée):
=PETITE.VALEUR($C$1:$C$3+LIGNE($C$1:$C$3)/100000;LIGNE()+1-LIGNE($A$1))
Copie jusqu'à Fx

En G1, la MATRICIELLE suivante :
=INDEX(A:A;EQUIV(F1;$C$1:$C$3+LIGNE($C$1:$C$3)/100000;0))
Copie jusqu'à Gx

Salutations,

Daniel M.

"Tony" wrote in message
news:3ff748a7$0$1144$
Merci Isabelle,

mais comme Daniel le soulignait (problème avec les doublons ou plus)


Avatar
guy
Bonjour à tous,
Dans le cas de 15 colonnes et 500 lignes à trier suivant 1 cellule d'une
seule colonne, comment faire ?
Grand merci.
Guy
"Daniel.M" a écrit dans le message de
news:
Salut,

Avec la même structure qu'Isabelle et en supposant que tu n'as pas de
petite

fractions dans tes nombres en colonne C,

En F1, la MATRICIELLE suivante (Ctrl-Maj-Entrée):
=PETITE.VALEUR($C$1:$C$3+LIGNE($C$1:$C$3)/100000;LIGNE()+1-LIGNE($A$1))
Copie jusqu'à Fx

En G1, la MATRICIELLE suivante :
=INDEX(A:A;EQUIV(F1;$C$1:$C$3+LIGNE($C$1:$C$3)/100000;0))
Copie jusqu'à Gx

Salutations,

Daniel M.

"Tony" wrote in message
news:3ff748a7$0$1144$
Merci Isabelle,

mais comme Daniel le soulignait (problème avec les doublons ou plus)






Avatar
Daniel.M
Bonjour Guy,

Le pattern implicite de la solution d'Isabelle (repris dans ma réponse mais pour
tenir compte des doublons) fonctionne nonobstant le nombre de lignes (on ajuste
évidemment C1:C3 sur la nouvelle plage, C1:C500) et le nombre de colonnes (on
aura des formules en colonne H à V, du type INDEX(B:B, ...), INDEX(C:C, ...) ,
INDEX(D:D,...) dans ces colonnes. Les nouvelles colonnes correspondent aux
données déjà existantes mais elles sont désormais triées (ce qui impliquent une
duplication).

Ceci étant dit, dans le cas de nombreuses données (plusieurs lignes, plusieurs
colonnes) je ne vois aucun problème à lancer une procédure événementielle
lorsque changent les données sources de façon à effectuer un tri. C'est court
(en terme de code), efficace (le tri interne d'Excel est ultra-rapide) et ça
évite bien des formules compliquées qui ne font, en bout de ligne, qu'ordonner
une autre série de données déjà existantes.

Salutations,

Daniel M.

"guy" wrote in message
news:
Bonjour à tous,
Dans le cas de 15 colonnes et 500 lignes à trier suivant 1 cellule d'une
seule colonne, comment faire ?
Grand merci.
Guy
"Daniel.M" a écrit dans le message de
news:
Salut,

Avec la même structure qu'Isabelle et en supposant que tu n'as pas de
petite

fractions dans tes nombres en colonne C,

En F1, la MATRICIELLE suivante (Ctrl-Maj-Entrée):
=PETITE.VALEUR($C$1:$C$3+LIGNE($C$1:$C$3)/100000;LIGNE()+1-LIGNE($A$1))
Copie jusqu'à Fx

En G1, la MATRICIELLE suivante :
=INDEX(A:A;EQUIV(F1;$C$1:$C$3+LIGNE($C$1:$C$3)/100000;0))
Copie jusqu'à Gx

Salutations,

Daniel M.

"Tony" wrote in message
news:3ff748a7$0$1144$
Merci Isabelle,

mais comme Daniel le soulignait (problème avec les doublons ou plus)










Avatar
guy
Bonjour Daniel,
Celà fait beaucoup de formules me semble-t-il ! Je vais essayer.
Qu'est-ce une procédure événémentielle. Je suis complètement ignorant sur
ce point.
Grand merci Daniel.
Guy
"Daniel.M" a écrit dans le message de
news:%23$
Bonjour Guy,

Le pattern implicite de la solution d'Isabelle (repris dans ma réponse
mais pour

tenir compte des doublons) fonctionne nonobstant le nombre de lignes (on
ajuste

évidemment C1:C3 sur la nouvelle plage, C1:C500) et le nombre de colonnes
(on

aura des formules en colonne H à V, du type INDEX(B:B, ...), INDEX(C:C,
...) ,

INDEX(D:D,...) dans ces colonnes. Les nouvelles colonnes correspondent aux
données déjà existantes mais elles sont désormais triées (ce qui
impliquent une

duplication).

Ceci étant dit, dans le cas de nombreuses données (plusieurs lignes,
plusieurs

colonnes) je ne vois aucun problème à lancer une procédure événementielle
lorsque changent les données sources de façon à effectuer un tri. C'est
court

(en terme de code), efficace (le tri interne d'Excel est ultra-rapide) et
ça

évite bien des formules compliquées qui ne font, en bout de ligne,
qu'ordonner

une autre série de données déjà existantes.

Salutations,

Daniel M.

"guy" wrote in message
news:
Bonjour à tous,
Dans le cas de 15 colonnes et 500 lignes à trier suivant 1 cellule d'une
seule colonne, comment faire ?
Grand merci.
Guy
"Daniel.M" a écrit dans le message de
news:
Salut,

Avec la même structure qu'Isabelle et en supposant que tu n'as pas de
petite

fractions dans tes nombres en colonne C,

En F1, la MATRICIELLE suivante (Ctrl-Maj-Entrée):

=PETITE.VALEUR($C$1:$C$3+LIGNE($C$1:$C$3)/100000;LIGNE()+1-LIGNE($A$1))



Copie jusqu'à Fx

En G1, la MATRICIELLE suivante :
=INDEX(A:A;EQUIV(F1;$C$1:$C$3+LIGNE($C$1:$C$3)/100000;0))
Copie jusqu'à Gx

Salutations,

Daniel M.

"Tony" wrote in message
news:3ff748a7$0$1144$
Merci Isabelle,

mais comme Daniel le soulignait (problème avec les doublons ou plus)














Avatar
Daniel.M
Guy,

Celà fait beaucoup de formules me semble-t-il ! Je vais essayer.


C'est exactement mon point: Beaucoup de formules et duplication des données de
base. Pour une bon volume, il vaut mieux trier par une proc événementielle.


Qu'est-ce une procédure événémentielle. Je suis complètement ignorant
sur ce point.


C'est une Sub() qui se lance dès qu'un événement (par ex., changement de valeur
sur une cellule) survient en Excel.
http://www.excelabo.net/xl/macros.php#macroevenementielle
http://longre.free.fr/pages/prog/evenements.htm

Salutations,

Daniel M.