IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Recherche gde valeur d'une colonne en fonction critére d'une autre


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Recherche gde valeur d'une colonne en fonction critére d'une autre
    Bonjour,
    J'ai en colonne A des noms qui peuvent se répeter.
    J'ai en colonne B des valeurs.
    je souhaite trouver en colonne C la plus grande valeur de B pour chaque nom de la colonne A.
    Je joint un fichier pour plus de compréhention.
    J'ai essayé BDMAX; Max; Recherchev en essayant d'y intégrer "Grande valeur".
    Je n'ai pas trouver sur le forum un probléme identique.
    Merci de votre aide.
    Cordialement.
    Guy."Saveme"
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    voici une formule matricielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GRANDE.VALEUR($B$2:$B$20*($A2=$A$2:$A$20);1)
    à valider avec Ctrl + Shif + Entrée

    quand tu l'as validée, la formule est encadrée automatiquement par des parentheses

    bonne journée

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par wilfried_42 Voir le message
    Bonjour

    voici une formule matricielle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GRANDE.VALEUR($B$2:$B$20*($A2=$A$2:$A$20);1)
    à valider avec Ctrl + Shif + Entrée

    quand tu l'as validée, la formule est encadrée automatiquement par des parentheses

    bonne journée
    Merci Wilfried, ça marche, simplement, je ne sais si c'est le fait que ce soit une formule matricielle, mais dés que je modifie une donnée, le temps de réponse est trés trés long, mon tableau fait environ 3000 lignes.
    Si pas d'autre formule (non matricielle possible) Merci encore.
    Bonne fin de journée.
    Save...me.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Points : 15
    Points
    15
    Par défaut Possibilité d'utiliser une macro
    Je pense que la solution matricielle doit être la plus rapide. (C’est une intuition personnelle, je n'ai jamais vérifié ça sur des listings de 3000 entrés).
    Néanmoins, je peux te proposer une alternative avec l'utilisation de macro.

    Avantage : tu la lances quand tu veux et pas à chaque fois que tu fais une modification.
    Inconvénient : La mise à jour doit être plus longue je pense.
    Voici le code que je te propose (y a surement mieux...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Sub tri()
        Dim ref As Range
        Dim i, j As Integer
        Dim v
        Set ref = Feuil1.Range("A2")
        i = 0
        While (Not ref.Offset(i, 0).Text = "")
            v = ref.Offset(i, 1).Value
            j = 0
            While (Not ref.Offset(i + j, 1).Value = 0)
                If (ref.Offset(i + j, 0).Value = ref.Offset(i, 0).Value) Then
                    If (v < ref.Offset(i + j, 1).Value) Then
                        v = ref.Offset(i + j, 1).Value
                    End If
                End If
                ref.Offset(i, 2).Value = v
                j = j + 1
            Wend
            i = i + 1
        Wend
    End Sub
    Je te joins le fichier modifié avec la macro
    Fichiers attachés Fichiers attachés

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2006
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 356
    Points : 1 466
    Points
    1 466
    Par défaut
    En meme temps ca depends pour quel usage tu demande ca et si tu as besoin d'avoir le maximum sur toutes les lignes ou pas. Si c'est juste a titre indicatif le moyen le plus rapide est sans doute le tri sur 2 critere le nom croissant ton chiffre en decroissant.A chaque changement de nom tu auras le maximum sur la premiere ligne.

    Si tu as besoin de l'avoir en colonne C le maximum tu fais juste un test facile par exemple a la ligne 3:
    =si(A3=A2;C2;B3)
    ton nombre maximum est toujours sur la premiere ligne de chaque nom, si le nom est le meme que la ligne precedente, tu reprends celui qui etait dans la colonne C au dessus, si le nom a change, la valeur maximum est dans cette ligne donc tu la prends en B de cette ligne.

    Si tu as juste besoin de faire le tri ca sera plus rapide que la formule matricielle, si tu dois mettre la formule, je n'en suis pas sure mais je pense la methode matricielle sera plus rapide a verifier.

  6. #6
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    si tu veux que cela semble plus rapide, tu te mets en calcul manuel

    Menu outil/Option/Calcul , tu coche sur ordre

    et quand tu en as besoin, tu appuies sur la touche F9

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Merci
    Bonjour,
    Merci ; wilfried_42 ; virginieh; taupinfada; pour votre aide, je vais rester sur la formule matricielle.
    Trés bonne journée.
    A++++++++++
    Guy (Save;;me)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/05/2015, 10h23
  2. Réponses: 19
    Dernier message: 31/05/2010, 09h51
  3. Réponses: 3
    Dernier message: 18/02/2009, 18h00
  4. somme de valeurs d'une colonne en fonction d'autres colonnes
    Par youness78 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 02/08/2007, 19h31
  5. Réponses: 3
    Dernier message: 22/10/2006, 23h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo