XL 2016 Recherche des 10 plus grandes valeurs successives

Lorenzini

XLDnaute Occasionnel
Bonjour,

N'ayant pas trouvé ce que je cherchais, je viens demander de l'aide sur le forum :
J'ai un tableau très simple avec 3 colonnes : Nom de service - Matériel - Prix
Dans un second tableau, j'ai commencé par trier les 10 plus grandes valeurs (Prix) en ordre décroissant.
Peut-être est-ce simple pour vous ; pour moi, je bloque (vu mon niveau débutant).
Comment fait-on pour trier aussi par service ?
Car ma formule me renvoie toujours (et uniquement) le 1er service rencontré.
Me dirigerai-je vers une formule matricielle ?
J'ai tenté d'expliquer dans le fichier joint le résultat que j'espérais obtenir par formule...

Vos aides sont toutes les bienvenues :)
 

Pièces jointes

  • TEST_GRANDES_VALEURS.xlsx
    13.4 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lorenzini,
Le problème est que GRANDE.VALEUR ne traite pas les d'exæquos.
Une astuce possible est de créer une colonne qui peut être masquée et qui contient :
VB:
=D2+LIGNE()/100000
Comme le N° de ligne change ... à chaque ligne, il ne peut plus y avoir d'exæquos.
 

Pièces jointes

  • TEST_GRANDES_VALEURS.xlsx
    12.7 KB · Affichages: 5

Staple1600

XLDnaute Barbatruc
Bonjour

Il y a une option dans le filtre Automatique qui se nomme : 10 premiers
Donc on filtre avec cette option puis on trie la plage filtrée (sur la colonne D) du plus grand au plus petit
Ci-dessous en VBA (par commodité pour reproduire le test)
VB:
Sub Macro1()
'Etape 1 : Filtre
ActiveSheet.Range("$B$1:$D$22").AutoFilter Field:=3, Criteria1:="10", Operator:=xlTop10Items
'Etape 2 : Trie
ActiveSheet.Range("$B$1:$D$22").Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlYes
End Sub
 

Lorenzini

XLDnaute Occasionnel
Bonjour :)
Est-ce obligé par formule?

Car en utilisant le tableau excel avec les filtre; en filtrant d'abord service; ensuite Prix, on obtient exactement le résultat souhaité.
Voir p.j.
Bonsoir Gen Rose :)

Alors, obligé par formule, non (même si j'étais parti sur cette idée), mais j'avoue que j'avais pensé à la solution que tu proposes ainsi qu'à une mise en forme conditionnelle.
En fait, c'était même la seule solution que j'avais envisagé, je veux dire à ma portée.
Merci Gen Rose ;)
 

Lorenzini

XLDnaute Occasionnel
Bonjour Lorenzini,
Le problème est que GRANDE.VALEUR ne traite pas les d'exæquos.
Une astuce possible est de créer une colonne qui peut être masquée et qui contient :
VB:
=D2+LIGNE()/100000
Comme le N° de ligne change ... à chaque ligne, il ne peut plus y avoir d'exæquos.
Bonsoir sylvanu 🙂

Wow, alors là, j'aime vraiment beaucoup ta solution ! Subtil 🧐 ! Il fallait y penser ; je retiens, Merci ! 😁
 

Staple1600

XLDnaute Barbatruc
Bonsoir @Lorenzini

Et quid de la proposition qui utilise le filtre automatique ?
(cf message#5)
Qui donne ce résultat
Filtre_Capture.PNG

NB: La macro était juste là pour rapidement appliquer le filtre et le tri.
Mais cela se fait très facilement manuellement (sans macro)
 

Lorenzini

XLDnaute Occasionnel
Bonjour

Il y a une option dans le filtre Automatique qui se nomme : 10 premiers
Donc on filtre avec cette option puis on trie la plage filtrée (sur la colonne D) du plus grand au plus petit
Ci-dessous en VBA (par commodité pour reproduire le test)
VB:
Sub Macro1()
'Etape 1 : Filtre
ActiveSheet.Range("$B$1:$D$22").AutoFilter Field:=3, Criteria1:="10", Operator:=xlTop10Items
'Etape 2 : Trie
ActiveSheet.Range("$B$1:$D$22").Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlYes
End Sub
Bonsoir Staple1600 :)

Tout comme Gen Rose, j'avais pensé aux filtres ; après, j'avoue que je n'ai pas pensé au code VBA pour lequel je prends note !
🤔
Du coup, je me tâte... je suis pour le moment sur la solution de sylvanu mais d'office, j'ajoute ta solution à ma bibliothèque VBA...
Merci !
👍 😁
 

Lorenzini

XLDnaute Occasionnel
Bonsoir @Lorenzini

Et quid de la proposition qui utilise le filtre automatique ?
(cf message#5)
Qui donne ce résultat
Regarde la pièce jointe 1169240
NB: La macro était juste là pour rapidement appliquer le filtre et le tri.
Mais cela se fait très facilement manuellement (sans macro)
oui, je reconnais qu'elle est rapide... et efficace !
Merci ! Merci ! Je prends ! ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95