Problème classement automatique à partir d'un fichier

Bonjour, à partir d'un premier tableau Excel, je souhaite créer un second tableau qui me permettra de classer automatiquement les valeurs dans un ordre décroissant.

Dans le fichier en PJ, je veux classer la colonne "ratio trié" (colonne I) en ordre décroissant. Ainsi, lorsque je rentrerai de nouvelles valeurs dans les colonne A à D, le but est d'automatiser la réorganisation des colonnes F à I.

J'ai tenté de m'appuyer sur l'aide de "Le Chat" de MistralAI, mais les formules qu'il me donne ne fonctionnent pas. Toujours dans le fichier en PJ, j'ai retiré le signe "=" car les formules me remonte un bug... par exemple en F2, formule "=INDEX($A$2:$A$8, MATCH(LARGE($B$2:$B$8, ROW()-ROW($F$1)), $B$2:$B$8, 0))".

Des idées, des solutions?

Par avance, merci.

Bonjour,

Je suis sur smartphone et ne peux pas ouvrir ton fichier pour le moment. Je ne peux donc pas vérifier tes formules.

Par contre la formule que tu donnes ici ne fonctionnera pas. Les fonctions "match", "large" et "row" sont utilisées en VBA. Pas dans une feuille Excel.

"Match" est la fonction "equiv" dans une feuille

"Row" est "ligne"

"Large" est "rang"

Bonjour,

Voir fichier si j'ai bien compris

Slts

Bonsoir à tous !

Et....

La formule proposée par l'IA, valide dans l'esprit, n'est tout simplement pas francisée. D'où l'erreur rencontrée.

Je vous livre une approche via Power Query (nativement intégré dans Excel depuis 2016) :

La source des données est transformée en tableau structuré ("tSource"). L'intégration de ce tableau dans Power Query permet, après le calcul du "ratio" et du tri souhaité, de retourner un tableau conforme à vos souhaits :

image

Si la source évolue, une simple actualisation retournera un tableau à jour.

Merci Alex, Boss68, JFL pour votre support. Je n'avais pas encore vu vos réponses, message passé dans les spams.

Problème résolu grâce à vous.

Bonsoir à tous !

Bien...

Je vous remercie de ce retour.

----> Ne pas oublier de passer le sujet en mode résolu ! (Important pour les recherches potentiellement identiques)

Bonjour JFL, Boss, Alex,

bon, je me suis un peu emballé hier en pensant que le pb était résolu...

Quand j'utilise le tableau de Boss_68, dès que je change les valeurs en quantité et poids, le classement ne se fait plus correctement.

Sur le fichier de JFL, rien ne se passe quand je met de nouvelles valeurs.

Sur les conseils d'Alex, j'ai remplacé / "Match" par "equiv" / "Row" par "ligne" / "Large" par "rang" => La formule se complique avec "rang", il semble qu'il faille modifier plus drastiquement cette partie de la formule.

Bon, vous vous en doutez, mon niveau d'Excel est très bas, jamais vraiment eut le besoin de pousser en profondeur sur le sujet... jusqu'à présent. Que puis-je faire, est-ce un problème de version d'Excel? Je suis sur Microsoft Office famille et étudiant 2016.

Bonjour à tous !

Sur le fichier de JFL, rien ne se passe quand je met de nouvelles valeurs.

La source des données est sous la forme d'un tableau structuré ?

L'actualisation a-t-elle été lancée ?

Voir ma proposition initiale avec des données ajoutée dans la source :

Je t'ai mis 2 possibilités en "I" et "K" pour faire le classement.

En "I" tu dois préciser quel est le rang que tu recherches (rang 1 pour le plus grand, rang 2 pour le second, ...) et en "K" le rang est directement dépendant de la ligne où se trouve la formule (si la formule est en ligne 2 alors le rang 1 sera recherché, en ligne 3 alors le rang 2 sera recherché, ...).

A toi de choisir celle que tu souhaites.

Les autres formules se basent sur la colonne "I".

Attention : Pas de traitement des ex-aequo...

Teste et dis nous.

Hello hello,

bon, pour la solution de JLF: j'ai modifié les données sur la ligne #3. Le calcul du ratio a l'air de se faire, mais le classement en ordre décroissant ne se fait pas correctement, après avoir actualiser les données.

capture d ecran 2025 08 07 183830 capture d ecran 2025 08 07 183409

Alex, ton fichier marche, super ! je dois t'avouer que je n'ai pas encore piger la subtilité entre les colonnes I et K... je vais me pencher sur le sujet, je vais faire marcher mes neurones, je devrais y arriver.

Un grand merci à vous deux !

GRANDE.VALEUR(matrice,k)

La syntaxe de la fonction GRANDE.VALEUR contient les arguments suivants :

  • matrice Obligatoire. Représente la matrice ou la plage de données dans laquelle vous recherchez la k-ième plus grande valeur.
  • k Obligatoire. Représente, dans la matrice ou la plage de cellules, la position de la valeur à renvoyer, déterminée à partir de la valeur la plus grande.

Donc

GRANDE.VALEUR(matrice,1) renverra la 1ère plus grande valeur

GRANDE.VALEUR(matrice,2) renverra la 2ème plus grande valeur

GRANDE.VALEUR(matrice,3) renverra la 3ème plus grande valeur

.....

Ça c'est pour l'idée principale de la fonction.

Le tout est de déterminer le rang K voulu puisque celui-ci dépend de chaque ligne de ton tableau.

Au vue de la disposition de tes données c'est en ligne 2 d'Excel que tu recherches la plus grande valeur, en ligne 3 d'Excel la 2ème plus grande, ...

Donc en ligne 2 d'Excel K doit être 1, en ligne 3 d'Excel K doit être 2,...

Tu peux donc saisir la formule directement :

  • =GRANDE.VALEUR(D:D;1) en ligne 2 d'Excel
  • =GRANDE.VALEUR(D:D;2)en ligne 3 d'Excel
  • ....

Oui mais tu ne vas pas t'amuser à saisir ces formules 1 par 1 pour toutes tes lignes en modifiant K à chaque fois (bon là dans ton fichier il n'y a pas beaucoup de lignes de données sur cet échantillon donc ce ne serait pas la mort tu me diras).

Solution colonne "I"

Alors tu te dis "pas grave, je vais saisir =GRANDE.VALEUR(D:D;1) en ligne 2 d'Excel puis recopier vers le bas". Eh bein non. Si tu fais ça Excel n'incrémente pas K. C'est toujours la formule initiale =GRANDE.VALEUR(D:D;1) qui sera reportée. K restera toujours à 1. Pas de bol, tu vas devoir corriger manuellement la formule à chaque ligne. Pas glop pas glop.

Solution colonne "K"

Ici j'utilise la fonction Ligne() d'Excel qui va définir K automatiquement.

  • La fonction Ligne() d'Excel te retourne comme résultat le numéro de la ligne Excel où elle est utilisée.
  • La formule "=Ligne()" saisie sans n'importe quelle cellule de la ligne 2 d'Excel te donnera 2
  • La formule "=Ligne()" saisie sans n'importe quelle cellule de la ligne 3 d'Excel te donnera 3
  • La formule "=Ligne()" saisie sans n'importe quelle cellule de la ligne 4 d'Excel te donnera 4
  • ...

Et si tu tires cette formule vers le bas tu vois que le résultat à chaque fois est mis à jour et tu retrouves le bon numéro de ligne Excel.

Donc tu peux te servir de cette fonction pour définir K dans la fonction "Grande.Valeur".

Dernier détail à régler : toi ce qui t'intéresse en ligne 2 d'Excel ce n'est pas le numéro de la ligne retourné par la fonction Ligne() mais le rang 1 de tes données. Il te faut donc soustraire 1 au résultat de Ligne() pour déterminer ton K de Grande.Valeur().

Et donc en ligne 2 d'Excel la formule"=GRANDE.VALEUR(D:D;LIGNE()-1)" te permettra bien de définir K et d'obtenir la valeur la plus grande de ta colonne D (ou de ta plage si tu avais définis une plage).

Et là cette fois-ci tu peux la tirer allègrement vers le bas sans avoir à la modifier. K (via LIGNE()-1) sera mis à jour et donc tes résultats aussi.

A toi de voir ce que tu préfères ; une correction manuelle de K X fois de la formule "=GRANDE.VALEUR(D:D;1)" ou bien une formule un peu plus longue mais qui s'adapte à la ligne où elle se trouve avec la formule "=GRANDE.VALEUR(D:D;LIGNE()-1)"

Une fois que tu as fait ton choix tu peux bien sûr supprimer l'une de ces 2 colonnes. Pense à adapter les autres formules si tu supprimes la colonne "I" en les faisant d'abord s'appuyer sur la colonne "K". ;)

Voili voilou c'est tout.

Bonsoir à tous

bon, pour la solution de JLF: j'ai modifié les données sur la ligne #3. Le calcul du ratio a l'air de se faire, mais le classement en ordre décroissant ne se fait pas correctement, après avoir actualiser les données.

Le tri actuel est basé sur ce que l'on pouvait comprendre du classeur originel qui mettait en avant la quantité.

Pour un critère de tri décroissant sur le champ "Ration" :

bonjour Alex,

merci pour les explications complémentaires, c'est plus clair pour moi maintenant.

bonjour JLF,

le fichier fonctionne parfaitement avec le tri décroissant sur le ratio. Par contre, comment cela fonctionne reste un mystère pour moi...

Bonsoir à tous !

le fichier fonctionne parfaitement avec le tri décroissant sur le ratio. Par contre, comment cela fonctionne reste un mystère pour moi...

Comme indiqué précédemment, le tableau résulte de Power Query (nativement intégré à Excel depuis 2016).

Vous pouvez prendre connaissance des retraitements opérés (d'une grand simplicité : chargement de la source, calcul du ration et enfin tri), sélectionnez une cellule du tableau retourné. Le menu contextuel "Requête" deviendra visible dans le ruban. En cliquant sur "Modifier", l'éditeur Power Query s'ouvrira. les retraitements sont listés dans la partie droite de la fenêtre.

L'éditeur avancé du ruban (menu "Accueil") vous donnera l'intégralité du code (langage M) utilisé pour obtenir le résultat souhaité.

Ne surtout pas hésiter à :

  1. être un minimum curieux...
  2. visualiser les centaines de tutoriels accessibles sur le Net.

Merci JFL pour ces dernières précisions. Bon, partant de Zéro, je vais devoir passer pas mal de temps sur le sujet des requêtes pour y arriver. Mais au moins, j'ai une piste / une méthode.

cdlt

Bonjour à tous !

..... Bon, partant de Zéro, je vais devoir passer pas mal de temps sur le sujet des requêtes pour y arriver.

Le retour sur investissement est rapide !

Je n'en doute pas, il va juste falloir trouver le temps de se mettre dessus... pas facile pour un jeune retraité, tellement de trucs à faire !

En attendant, un grand merci à vous 2 ! Problème résolu !

Rechercher des sujets similaires à "probleme classement automatique partir fichier"