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 :

Récupération d'une colonne par rapport à une autre


Sujet :

Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut Récupération d'une colonne par rapport à une autre
    Bonjour ,

    Tout d'abord je demande votre indulgence car je suis totalement novice en Excel.

    Ma question va paraitre idiote car je suis sur que c'est très simple.

    Voila :

    J'ai une première feuille ainsi :

    AAAA 5
    BBBBB 2
    CCCCC 6
    DDDDD 24
    EEEEE 3

    Et je voudrai , dans la deuxième feuille récupérer le nombre maximum (24 , ca j'y arrive) mais aussi la chaine DDDDD ainsi :

    Chaine le + utilisée : DDDDD 24 fois

    Comment récupérer le contenu de la colonne A correspondant au maximum de la colonne B ?

    Merci de vos réponses

    Bakounine

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    La fonction rechercheV ne permet pas de rechercher une valeur par rapport à celle contenue dans une autre colonne?

    Cordialement.

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    pour faire cela tu peux utiliser la formule matricielle suivante (a valider par CTRL + MAJ + ENTREE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(A1:A5;EQUIV(1;(B1:B5=MAX(B1:B5))*1;0))

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut
    Bonjour ,

    Merci Mr Mof , je suis loin de connaitre toutes les commandes (MIN et MAX sont intuitifs, mais les autres.....). Par contre , j'ai lu le Help de RECHERCHEV et je ne crois pas que l'on puisse mettre un "MAX" en premier argument.

    Jfontaine , c'est nickel ! Cela ne se devine pas ! Surtout le CTL+SUP+ENTER !!

    Et cela marche aussi avec "GRANDE.VALEUR;2" pour la 2 éme plus grande valeur , c'est super.

    Merci !!

    Juste par curiosité , que signifie le *1 ? J'ai rien vu dans le Help ?


    Par contre , j'ai encore un petit souci , lorsque deux lignes différentes ont la même valeur en colonne B , ainsi

    DDDD 3
    EEEEE 25
    FFFFF 32
    GGGGG 25

    La formule que tu m'as donnée , utilisée avec GRANDE.VALEUR;2 me donne EEEE (OK) , mais utilisée avec GRANDE.VALEUR;3 , elle me renvoie encore EEEE.

    Il y a un moyen de récupérer GGGG dans ce cas ? Je suis pénible , je sais...

    C'est faisable ?

    Bakounine

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Juste par curiosité , que signifie le *1 ? J'ai rien vu dans le Help ?
    Je peux juste te dire que quand tu n'as qu'un critère de sélection il faut mettre *1 pour que ca fonctionne. (les raisons exact m'échappent )

    Il y a un moyen de récupérer GGGG dans ce cas ? Je suis pénible , je sais...
    Malheureusement c'est aussi un cas qui me bloque. Peut être que d'autres auront une solution à nous proposer

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 167
    Points : 131
    Points
    131
    Par défaut
    Bonjour ,

    Pour l'instant , je m'en passerai donc.

    En tout cas , merci à toi pour ta réponse rapide.

    Je reviendrai surement vers vous bientôt.

    Bakounine

  7. #7
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Analyse de la formule de jflapointe pour le premier tableau:
    =INDEX(A1:A5; EQUIV(1; (B1:B5= MAX(B1:B5) ) *1 ;0))
    MAX(B1:B5) renvoie le maximum 23
    {(B1:B5= MAX(B1:B5) )} ou maintenant {(B1:B5= 23)} renvoie la matrice de valeurs logiques :
    FAUX
    FAUX
    FAUX
    VRAI
    FAUX
    { (B1:B5= MAX(B1:B5) )*1 } renvoie la matrice de nombres :
    0
    0
    0
    1
    0
    car pour tout nombre n , VRAI*n = n et FAUX *n = 0
    (C’est la mise en œuvre de cette matrice qui nécessite une formule matricielle validée par CTRL + MAJ + ENTREE)
    EQUIV(1;(B1:B5= MAX(B1:B5) )*1;0)) cherche à quel rang se trouve le 1 dans la matrice de nombres précédente et renvoie donc le rang 4.
    INDEX (A1:A5; EQUIV(1; (B1:B5= MAX(B1:B5) ) *1 ;0)) ou maintenant INDEX (A1:A5; 4 ) renvoie le contenu de la 4ème cellule de la plage A1:A5 soit la chaine DDDDD.

    Pour le premier tableau de bakounine, la formule
    =INDEX(A1:A5;EQUIV(MAX(B1:B5);B1:B5;0))
    renvoie la chaine DDDDD sans nécessiter une formule matricielle et me semble peut être plus simple à comprendre.
    En écrivant dans une cellule de la ligne 1 :
    =INDEX($A$1:$A$5;EQUIV(GRANDE.VALEUR($B$1:$B$5;LIGNE());$B$1:$B$5;0))
    et en recopiant cette formule vers le bas, on obtient le rangement des chaines par ordre décroissant d’occurrences.

    Pour ce qui est du problème des ex aequo, une possibilité sur la 2ème feuille du classeur ci-joint.
    Dans la colonne D de cette feuille, on calcule pour chaque chaine son rang mais en utilisant en D1 la formule :
    = RANG(B1;$B$1:$B$4)+NB.SI($B$1:B1;B1)-1 au lieu de la simple formule :
    = RANG(B1;$B$1:$B$4) ce qui donne la plage de rang
    4 au lieu de 4
    2 2
    1 1
    3 2
    En effet, les chaines EEEE et GGGGG ne sont plus classées 2ème et 2ème mais 2ème et 3ème malgré les scores identiques 25.
    d’où plus de facilité pour récupérer ensuite les chaines avec une formule combinant INDEX et EQUIV .

    Cordialement
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Merci papouclo pour ces informations :cool:, j'ai enfin compris à quoi servait le "*1"

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/05/2012, 15h02
  2. Réponses: 5
    Dernier message: 06/10/2011, 12h56
  3. Moyenne d'une colonne par rapport à une catégorie
    Par misakilou dans le forum Langage SQL
    Réponses: 14
    Dernier message: 30/06/2011, 17h12
  4. Réponses: 1
    Dernier message: 19/03/2009, 14h44
  5. Initialisation d'une colonne par rapport à une autre colonne
    Par jeromesco dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/04/2005, 17h15

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