Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Plus grande valeur

  • Initiateur de la discussion Initiateur de la discussion Rust
  • 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 !

R

Rust

Guest
Bonjour,

j'ai un tableau avec 4 colonnes:
Sur la 1ere les chiffres de 1 a 10
Sur la deuxième des chiffres quelconques (c'est moi qui choisit)
Sur la troisième les chiffres de 11 a 20
Sur la quatrième des chiffres quelconques

Et je voudrais prendre les 3 plus grandes valeurs des chiffres quelconques, et rendre les valeurs qui sont associés sur les colonnes de gauche.

Par exemple si j'ai :

1------ 5 ----- 5 ----- 12
2 ----- 6 ----- 6 ----- 1
3 ----- 8 ----- 7 ----- 15
4 ----- 3 ----- 8 ----- 2

je voudrais qu'on me rende: 7-5-3

J'espère que c'est clair, merci de votre aide.
 
Re : Plus grande valeur

Bonsoir,

un formule pour ta question :
F1=SI(ESTNA(EQUIV(GRANDE.VALEUR(($B$1:$B$10;$D$1:$D$10);LIGNE());$D$1:$D$10;0));INDEX($A$1:$A$10;EQUIV(GRANDE.VALEUR(($B$1:$B$10;$D$1:$D$10);LIGNE());$B$1:$B$10;0));INDEX($C$1:$C$10;EQUIV(GRANDE.VALEUR(($B$1:$B$10;$D$1:$D$10);LIGNE());$D$1:$D$10;0)))

les données sont en A1 : D10
les résultats sont en F1:F3 (attention au ligne() si tu déplaces la formule)
ça ne gère pas bien les doublons.

cordialement
 
Re : Plus grande valeur

Bonsoir Rust, bonsoir le forum,

Tu n'as pas précisé si tu voulais Formule ou Macro. Comme je suis nul en formule je te propose la macro ci-dessous :

Code:
Sub Macro1()
 
'j'ai déclaré les variables comme "Integer" mais tu adapteras si nécessaire
Dim prem As Integer, sec As Integer, trois As Integer 'déclare les variables prem, sec et trois
Dim premeq As Integer, seceq As Integer, troiseq As Integer 'déclare les variables premeq, seceq et troiseq
 
Dim tablo As Range 'déclare la variable tablo
 
Set tablo = Range("A1:D4") 'définit la variable tablo (à adapter à ton cas)
prem = WorksheetFunction.Large(tablo, 1) 'définit la variable prem
sec = WorksheetFunction.Large(tablo, 2) 'définit la variable sec
trois = WorksheetFunction.Large(tablo, 3) 'définit la variable trois
 
'***************************************************************************************************************
'attention au bug si l'une des trois plus grandes valeurs se trouve dans la colonne A (offset(0, -1) va planter)
'***************************************************************************************************************
With tablo 'prend en compte la plage "tablo"
    premeq = .Find(prem).Offset(0, -1).Value 'définit la variable premeq
    seceq = .Find(sec).Offset(0, -1).Value 'définit la variable seceq
    troiseq = .Find(trois).Offset(0, -1).Value 'définit la variable troiseq
End With 'fin de la prise en compte de la variable "tablo"
 
MsgBox premeq & ", " & seceq & ", " & troiseq 'message affichant les valeurs
 
End Sub
 
Re : Plus grande valeur

Robert, merci de ta réponse, mais je ne connais pas les macros, dommage.
ODVJ, j'ai du mal a comprendre la formule.
Pour simplifier j'ai finalement tout mis sur deux colonnes. Pourrais-tu me réécrire la formule afin que j'essaie de la comprendre ?

1 ----- 5
2 ----- 8
3 ----- 2
4 ----- 1
5 ----- 9
6 ----- 7
7 ----- 12
8 ----- 6
9 ----- 9
doit me rendre 7-9-5 ou 7-5-9
Quand je dis "doit me rendre 7-9-5" ca peut etre sur plusieurs case, ca me pose pas de problème (si c'est plus facile a faire).

Merci beaucoup
 
Dernière modification par un modérateur:
Re : Plus grande valeur

Merci Monique, ce que tu me proposes fonctionne bien (j'ai pas tout compris j'ai juste recopié la formule et adapter).
Mais le problème est que ca ne fonctionne plus si j'insère une ligne, ce que je compte faire toutes les semaines.
C'est possible de régler ce problème ?
 
Re : Plus grande valeur

Re,

D'accord, c'est juste là qu'il ne faut pas insérer de ligne !
à cause de Index(A1:A11; n° de ligne)
Tu peux insérer au-dessus de la ligne 2
Tu peux aussi masquer la ligne 1, tu ne risqueras pas d'insérer 1 ligne au-dessus.

Sinon, j'ai refait les formules
et tu peux insérer une ligne au-dessus de la ligne 1
(ça rallonge un peu les formules)
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
761
Réponses
23
Affichages
676
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…