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 :

Extraire des noms d'un tableau vers un autre tableau [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Extraire des noms d'un tableau vers un autre tableau
    Bonjour,

    Est-il possible d'extraire des valeurs (une colonne) d'un tableau vers un autre tableau avec des critères.
    Quand j'utilise la fonction suivante: =INDEX((tblPays[Personne]);EQUIV("France";tblPays[Pays];0)) cela me retourne toujours la même valeur,

    N'étant pas un expert en Excel comment faire.

    Dans le fichier en attaché j'ai un exemple.

    Dans le fichier d'origine les 2 tableaux contiennent plusieurs colonnes...

    J'aimerais le faire avec des fonctions Excel

    Merci de votre collaboration
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    D.E.
    Inscrit en
    Octobre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : D.E.

    Informations forums :
    Inscription : Octobre 2013
    Messages : 562
    Points : 764
    Points
    764
    Par défaut
    En mettant 4 fois la même formule, il semble normal d'obtenir 4 fois la même chose. Concernant votre demande, je n'ai pas compris ce que vous vouliez extraire. Donnez un exemple plus concret.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Extraire des noms d'un tableau vers un autre tableau
    Merci Patrice

    Je veux extraire les noms des personnes dont le pays répond au critère du tableau A vers un le tableau B.
    Avec index equiv: =INDEX((tblPays[Personne]);EQUIV("France";tblPays[Pays];0)) La validation a été fait par ctrl shift enter

    Je demande de me retourner les personnes du tableau tblPays dont le pays est égale à la France. Toutes les personnes de la France doivent apparaître dans le tableau
    tblPersonne:

    Tableau source
    Personne Pays
    André Benoit France
    Marc Laberge France
    Joe Frazier Bretagne
    Rodrigo Marques France
    Walter Peper Bretagne
    Walter Peper Bretagne

    Tableau destiné
    Personne
    André Benoit
    Marc Laberge
    Rodrigo Marques

    Cela doit passer par une fonction excel.

    Merci pour vos suggestions,

  4. #4
    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,
    Ecrire en E2 la formule matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX((tblPays[Personne]);PETITE.VALEUR(SI((tblPays[Pays]="France");LIGNE(tblPays[Pays])-1;"");LIGNE()-1));"")
    à valider par Ctrl + Maj + Entrée.
    Mais il est si simple de filtrer le tableau sur la valeur France du champ Pays.
    Cordialement
    Claude

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Résolu
    Un sincère merci pour votre support et votre générosité.

    Merci Claude pour ta solution qui est exactement ce que je voulais.

    Claude si tu peux m'éclairer avec la formule pour bien la comprendre.

    SIERREUR( -- on met à blanc
    INDEX((tblPays[Personne]); -- Colonne que je avoir les données
    PETITE.VALEUR(SI((tblPays[Pays]="France");LIGNE(tblPays[Pays])-1;"") --valide la condition mais point de départ l'entête car c'est un tableau
    ;LIGNE()-1)); --pourquoi cette partie est-ce à cause du tableau ?
    "")

    Merci encore à tous,

  6. #6
    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,
    La formule EQUIV("France";tblPays[Pays]) qui était employée dans la première version ne renvoie que la première occurrence de la valeur France dans le champ Pays.
    Lorsque l'on veut obtenir toutes les occurrences d'une valeur dans une plage, un des moyens de les obtenir est d'utiliser la fonction PETITE.VALEUR (ou GRANDE.VALEUR) à
    condition de travailler sur une plage numérique et donc de remplacer ici les noms du champ PAYS par des nombres d'où la partie de la formule :
    SI((tblPays[Pays]="France");LIGNE(tblPays[Pays])-1;"")
    Si à une ligne de la colonne B, la cellule contient "France" alors on prend le rang de l'occurrence dans le champ PAYS du tableau obtenu par LIGNE() - 1 ( LIGNE() donnant le rang de cette occurrence dans la colonne B
    et non pas dans la plage $B$2:$B$7 ). Si ce n'est pas le cas, on mettra une "valeur vide".
    On obtient à la place du France de B2 en mémoire virtuelle la valeur 1; à la place du France de B3 la valeur 2 ; rien à la place du Bretagne de B3 ...
    Cette plage numérique virtuelle 1 ; 2 ; ; 4 ; ; (en réalité, il vaudrait mieux l'imaginer en colonne mais je l'écris en ligne pour un gain de place) étant créée, la fonction PETITE.VALEUR
    utilise la syntaxe : PETITE.VALEUR (plage numérique ; rang) et dans la cellule B2 , LIGNE() - 1 permet d'obtenir la première valeur la plus petite ; dans la cellule B3, LIGNE()-1 donne
    le rang 2 et permet d'obtenir la deuxième valeur dans l'ordre croissant.
    Or, ces valeurs sont aussi les rangs des cellules contenant la valeur France dans le champ Pays et , avec la fonction INDEX, elles permettent donc de récupérer les personnes correspondantes.
    Cordialement
    Claude

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

Discussions similaires

  1. Extraire des données d'un tableau vers un autre onglet
    Par merlinus3000 dans le forum Excel
    Réponses: 3
    Dernier message: 07/06/2015, 20h28
  2. Réponses: 3
    Dernier message: 01/05/2015, 18h44
  3. Réponses: 3
    Dernier message: 14/01/2010, 22h30
  4. Réponses: 7
    Dernier message: 02/11/2006, 11h49
  5. Réponses: 2
    Dernier message: 30/05/2002, 10h19

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