XL 2013 report de données avec classement décroissant

  • Initiateur de la discussion Initiateur de la discussion Lo33
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lo33

XLDnaute Nouveau
Bonjour à tous,

Après des jours de vaines recherches, je baisse les bras, et je poste aujourd'hui mon problème.

Je souhaite reporter des données dans un tableau à partir d'une liste déroulante (année). Mais j'ai besoin que les données soient classées par ordre décroissant de la colonne C.
Je joins un fichier test:

- Onglet VR : ensemble des données. J'ai créé une formule en colonne A pour générer un "index" en fonction de la sélection de la liste déroulante en onglet Feuil2 => =SI($B2=Feuil2!$B$2;SI(NB.SI.ENS($B$1:B1;B2;$C$1:C1;C2)>0;"";MAX($A$1:A1)+1);"")

- Onglet Feuil2: report des données
C'est là que cela coince.... je ne parviens pas à faire en sorte que les produits apparaissent classés par ordre décroissant des valeurs de la colonne C (Qté tonnes libres)
J'ai tenté de créer un autre index (colonne F dans l'onglet VR) en essayant de générer un classement mais le rang se calcule sur l'ensemble de la colonne D alors que j'ai besoin qu'il ne se fasse que sur les valeurs concernés,

Merci d'avance pour votre aide !
 

Pièces jointes

Solution
Bonsoir Lo,
C'était pas vraiment une bonne idée de mettre les tonnes bloquées avec des nombres aléatoires. Je ne comprenais pas pourquoi mes résultats n'arrêtaient pas de changer. 😢

En PJ un essai en trichant un peu. Si le tonnage est nul mais que le produit existe je rajoute 300 grammes. Ainsi il passe le filtre.
A teste.
Bonjour Lo,
Vous ne pouvez pas faire ce genre de tri car les cellules contiennent des formules.
Une fois triée, par exemple la formule :
Code:
=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE(A21);VR!$A:$A;0);2);"")
qui serait positionnée en première deviendrait :
Code:
=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE(A1);VR!$A:$A;0);2);"")
puis recalculée, et vous retrouvez vos valeurs initiales.
Utilisez :
Code:
[CODE]=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE($A$21);VR!$A:$A;0);2);"")
[/CODE]
mais il faut changer à la min chaque formule. Voir PJ.
Ou alors passer par du VBA.
 

Pièces jointes

Merci pour vos réponses.
Malheureusement je n'y connais rien en VBA, mis à part l'utilisation de la combobox.

N'est-il pas possible d'utiliser une toute autre formule en Feuil2, colonne B, permettant de sélectionner et ordonner les données tel que je le souhaite? Incluant si nécessaire de travailler la formule en VR, colonne A, de façon différente?
Je me demandais si justement je ne m'étais pas trompée dans mon raisonnement dès le départ, pour me retrouver coincer sur l'ordre final que je veux appliquer aux données.

Merci encore
 
Re,

Dans uns autre forum ma signature est : VBA m'éclate, les formules m'ennuient. Je n'y peux rien, c'est comme ça...
Désolé...
Le fichier que vous m’avez proposé était exactement ce que je cherche à faire 😊 mais malheureusement je ne sais pas faire. Quoi qu’il en soit, merci beaucoup d’avoir pris le temps ! Qui sait, peut être un jour je me mettrai à VBA !!
 
Bonjour à tous,
Me revoilà de nouveau bloquée, et dépitée parce que je n'arrive pas à trouver ma solution toute seule... Bref, j'ai besoin d'aide.
Je poste ce message à la suite des précédents parce qu'il s'agit d'une suite sur le même sujet, et qu'avoir l'historique des messages me semble pertinent pour ceux qui voudront bien m'aider.

Pour mémo, il s'agit de reporter des données dans un tableau à partir d'une liste déroulante (année), avec classement par ordre décroissant de la colonne C. Ci joint un fichier Test.
- Onglet VR : ensemble des données.
- Onglet Feuil2: report des données, avec en colonnes F à H les formules qui me permettent de classer les données de la colonne C par ordre croissant.

Mon problème : j'ai maintenant de nouvelles valeurs à intégrer (Qté tonnes bloquées, feuil2, colonne I) que je dois faire apparaitre en colonne D (feuil2). Le classement par ordre croissant se faisant sur la colonne H (et il doit le rester), si la valeur en colonne H est égale à 0 mais que j'ai une valeur supérieure à 0 en colonne I, aucune valeur en D n'est reportée... Or il faudrait que 0 ou "" apparaisse en C, et qu'en colonne D soit reportée la valeur indiquée en colonne I (idéalement classée aussi par ordre croissant)

Voici la formule utilisée en colonne C, mais que je n'arrive à "moduler" :
=SI(INDEX($H$6:$H$150;EQUIV(MAX($F:$F)-LIGNE()+6;$F$6:$F$150;0))>=0,001;INDEX($H$6:$H$150;EQUIV(MAX($F:$F)-LIGNE()+6;$F$6:$F$150;0));"")

Est-ce que vous pouvez me donner un coup de main pour débrouiller ça?

Merci d'avance pour votre aide !
 

Pièces jointes

Bonsoir Lo,
C'était pas vraiment une bonne idée de mettre les tonnes bloquées avec des nombres aléatoires. Je ne comprenais pas pourquoi mes résultats n'arrêtaient pas de changer. 😢

En PJ un essai en trichant un peu. Si le tonnage est nul mais que le produit existe je rajoute 300 grammes. Ainsi il passe le filtre.
A teste.
 

Pièces jointes

J'ai testé, et c'est nickel ! je n'aurai jamais pensé à faire un truc pareil (rajouter le 0,0003)
Bref, merci beaucoup Sylvanu ! et désolée pour les aleas entrebornes.... je n'ai pas réfléchi que cela pouvait impacter sur la suite... 😞
Je vais pouvoir continuer à avancer 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
478
Retour