on ne garde que les meilleurs valeurs ( Resolu )

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

F

fifi56

Guest
bonjour et bonnee annee a tous et toutes

dans un tableau je cherche a ne garder que 1 note en fonction d'une autre colonne

( oui je sais ce 'n'est pas tres clair comme mon cerveau ce soir )

ci joint un petit fichier il va expliquer mieux que moi

merci de votre aide
 

Pièces jointes

Dernière modification par un modérateur:
Re : on ne garde que les meilleurs valeurs

Bonsoir JHA, fifi56

Une solution Vba, résultat en Feuil2 :
VB:
Sub Maxi()
Dim a, i As Long, e, n As Long
    a = Sheets("Feuil1").Range("B3").CurrentRegion.Value
    a(1, 1) = "Noms": a(1, 2) = "Notes"
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1: n = 1
        For i = 2 To UBound(a, 1)
            If a(i, 2) <> "" Then
                If Not .exists(a(i, 2)) Then
                    Set .Item(a(i, 2)) = _
                    CreateObject("System.Collections.SortedList")
                End If
                .Item(a(i, 2))(a(i, 1)) = a(i, 3)
            End If
        Next
        For Each e In .keys
            n = n + 1: a(n, 1) = e
            a(n, 2) = .Item(e).GetByIndex(.Item(e).Count - 1)
            a(n, 3) = .Item(e).GetKey(.Item(e).Count - 1)
        Next
    End With
    With Sheets("Feuil2").Cells(1)
        .CurrentRegion.Clear
        With .Resize(n, 2)
            .Value = a
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .Borders.Weight = 2
        End With
        .Resize(, 2).Interior.ColorIndex = 19
        .Parent.Select
    End With
End Sub
Edit: je regarde la solution de JHA, sûrement plus judicieux avec des formules.
Klin89
 
Re : on ne garde que les meilleurs valeurs

merci de vos réponses , j'avoue que je préférais dans la mesure du possible éviter le vba


la solution de jha ne convient pas, celle de klin89 fonctionne mais vba


car c'est bien le coef du controle qui donne la note a prendre en compte et non pas la note max de l'eleve a prendre
( je vous ais induit en erreur avec mon 1 er fichier je m'en excuse , les nouvelles valeurs du fichiers sont plus parlante ! )
 
Dernière modification par un modérateur:
Re : on ne garde que les meilleurs valeurs

Re,

Avec decaler,
Code:
=DECALER($B$3;MAX(SI(($C$4:$C$12=$K4);LIGNE($B$4:$B$12)-3));2)
ou avec index
Code:
=INDEX($D$4:$D$12;MAX(SI(($C$4:$C$12=$K4);LIGNE($B$4:$B$12)-3);0))

Toujours en matricielle Ctrl+Maj+Entrée

JHA
 

Pièces jointes

Dernière édition:
Re : on ne garde que les meilleurs valeurs

🙁 la solution décaler ne fonctionne pas non plus , il suffit de changer la valeurs du coef controle en l'augmentant pour le premier contrôle de julie par exemple ...

mais merci tt de meme d'avoir essayer !

je vais a defaut utiliser vba
 
- 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

G
Réponses
15
Affichages
2 K
G
M
Réponses
1
Affichages
1 K
Retour