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écuperer les valeurs d'une ligne en comparant son nom


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut Récuperer les valeurs d'une ligne en comparant son nom
    Bonjour,

    j'ai une base de donnée qui se présente comme ceci :

    Nom Valeur1 Valeur2 Valeur3......

    A 1 2 4
    B 2 1 3
    C 5 3 10

    Je voudrai récupérer quand je tape A ou B ou C dans une cellule,
    Récupérer et écrire les valeur1 2 et 3 dans les cellule suivantes (sur la même ligne).

    Existe t'il une formule excel pour cela ?
    Je souhaite vivement eviter le VBA, mais j'accepte quand même les propositions VVBA au cas ou il n'y aurai pas de solution par fonction excel.

    PS j'ai réussi avec des fonction "SI" imbriquées les unes dans les autres, mais cette solution est beaucoup trop lourde à gérer car ma base de données est en faite bien plus importante que A B C et en plus les "glissé" de formulent me décalent à chaque fois les numéros des noms à comparer, enfin bref, beaucoup trop lourd.

    Merci d'avance pour vos propositions

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    j'ai une base de donnée qui se présente comme ceci :

    Nom Valeur1 Valeur2 Valeur3......

    A........1.........2.........4
    B........2.........1.........3
    C........5.........3........10

    Je voudrai récupérer quand je tape A ou B ou C dans une cellule,
    Récupérer et écrire les valeur1 2 et 3 dans les cellule suivantes (sur la même ligne).

    Existe t'il une formule excel pour cela ?
    Je souhaite vivement eviter le VBA, mais j'accepte quand même les propositions VVBA au cas ou il n'y aurai pas de solution par fonction excel.

    PS j'ai réussi avec des fonction "SI" imbriquées les unes dans les autres, mais cette solution est beaucoup trop lourde à gérer car ma base de données est en faite bien plus importante que A B C et en plus les "glissé" de formulent me décalent à chaque fois les numéros des noms à comparer, enfin bref, beaucoup trop lourd.

    Merci d'avance pour vos propositions

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    une proposition svp ?

    J'accepte même le vba...

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il faudrait peut-être préciser un peu plus.
    Où tapes-tu la valeur à chercher par exemple A ?
    et les valeurs, est-ce sur la même ligne où tu as tapé le A ou bien dans les colonnes à côté des autres valeurs.
    Ce n'est pas très clair pour moi.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Points : 27
    Points
    27
    Par défaut
    Dans une colonne définie, je dois taper mon choix A, B,ou C.
    Ensuite, je dois récupérer les valeurs 1 et 2 et 3 qui correspondent aux valeur de la base de donnée de la ligne A B ou C selon mon choix et je dois ensuite écrire ces valeurs dans les colonnes derrière celle ou j'ai fais mon choix et sur la même ligne que celle ou j'ai fais mon choix.

    J'espère que c'est plus clair...

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    il te faut rechercheV

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    J'espère que j'ai compris.
    Considérons que la plage avec les données est comprise de A2 à D6
    Dans cet exemple, J'ai placé la valeur à chercher en F2
    En G2, et ensuite avec la poignée de recopie copier jusqu'à I6, je place cette formule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV($F2;$A$2:$D$6;COLONNE(B2);0)
    A adapter si la plage de données est sur une autre feuille.

  8. #8
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 461
    Points : 707
    Points
    707
    Par défaut
    Bonjour à tous,

    Supposons que les données sont dans les colonnes de A à D

    On peut utiliser la formule suivante (en G2 par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(B:B;EQUIV($F$2;$A:$A;0))
    Cordialement

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    La fonction INDEX(Tableau;Ligne;Colonne) renvoie le contenu de la cellule qui se trouve à l'intersection de la ligne et de la colonne du tableau.
    Autrement dit :
    Si tu définis comme tableau la plage $A$2:$D$10 et que tu tapes dans une cellule quelconque, bien sûr au delà du tableau sinon tu auras une erreur, par exemple en F2
    La fonction te renverra la valeur de la cellule D3 soit la deuxième ligne, 4ème colonne de ton tableau $A$2:$D$10
    La fonction EQUIV permet de calculer automatiquement la position de la ligne ou de la colonne.
    Si tu cherches Albert dans la colonne A en tapant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV("Albert";$A$2:$A$10;0)
    Si Albert se trouve dans la celule A3, la fonction te renverra 2
    Donc en combinant les deux fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX($A$2:$D$10;EQUIV("Albert";$A$2:$A$10;0);4)
    Tu obtiendras la valeur de la colonne 4 du tableau $A$2:$A$10
    Je te conseille de jeter un coup d'oeil sur l'aide en ligne ou bien fait la recherche d'un tuto concernant ces fonctions. Je n'ai pas d'adresses précises sous la main.

  10. #10
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 461
    Points : 707
    Points
    707
    Par défaut
    Bonjour corona, bonjour àtous,

    Juste une petite correction (si tu permets):
    Si tu cherches Albert dans la colonne A en tapant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV("Albert";$A$2:$A$10;0)
    Si Albert se trouve dans la celule A3, la fonction te renverra 2
    Donc en combinant les deux fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX($A$2:$D$10;EQUIV("Albert";$A$2:$A$10;0);4)
    Tu obtiendras la valeur de la colonne 4 du tableau $A$2:$A$10 ..... Non
    En combinant les deux fonctions (d'après ton exemple), on obtiendra la valeur de la cellule intersection de la ligne 2 et de colonne 4 du tableau $A$2:$D$10 c'est à dire la cellule D3 car la formule (combinée) devient : puisque la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =EQUIV("Albert";$A$2:$A$10;0)
    a donné le résultat 2...

    Nb: La fonction INDEX combinée à EQUIV est plus forte que la fonction RECHERCHEV... La fonction RECHERCHEV dépend de la position de la valeur cherchée dans la première colonne du tableau obligatoirement, mais INDEX avec EQUIV peut chercher une valeur dans n'importe quelle colonne même extérieure au tableau de recherche...

    Dans le fichier çi_joint tu trouveras l'application de la formule donnée dans mon post plus haut sur l'exemple (demande) de Drey51...

    Cordialement
    Fichiers attachés Fichiers attachés

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 936
    Points : 28 932
    Points
    28 932
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Désolé hben1961 mais un message a dû disparaître car je répondais, si j'ai bonne mémoire, à Djey51 qui après ton message a me semble t'il soit signalé une erreur par une mauvaise utilisation de la fonction, soit demandé une explication.
    Ta syntaxe étant bonne, je ne me serais certainement pas permis de sortir une ineptie pareille. J'utilise pour ma part depuis des années la combinaison INDEX & EQUIV.

Discussions similaires

  1. [AC-2007] Requête UNION : récuperer les valeurs sur une seule ligne
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/12/2009, 12h02
  2. Récuperer la valeur d'une variable à partir de son nom
    Par Etanne dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2007, 18h04
  3. Réponses: 2
    Dernier message: 04/04/2007, 17h21
  4. Réponses: 5
    Dernier message: 12/08/2006, 00h36
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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