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 et lister une liste en fonction d'un critère présent dans un texte [XL-2010]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien audiovisuel
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut Extraire et lister une liste en fonction d'un critère présent dans un texte
    Bonjour,

    J'essaye mais je n'arrive pas à finir ma formule, pourriez vous me donner un coup de pouce SVP ?

    J'ai donc un classeur avec 2 feuilles.

    Sur la première (Films) j'ai une liste de films avec plusieurs colonne dont titres (Col.A) et Interprètes (Col.M) et une colonne Liaison (Col.B)
    La case interprète reprend la liste complètes des acteurs (ex : Mia Wasikowska , Nicole Kidman, Matthew Goode, David Alford, Phyllis Somerville, Harmony Korine)

    Sur ma deuxième feuille (Acteur) j'ai créer un tableau de recherche. Mon but, en tapant le nom d'un acteur dans une case recherche (en B4 ici), je veux qu'il s'affiche dans un tableau la liste de tous les films dans lesquels il figure.

    Donc voilà où j'en suis :
    Mon tableau de la feuille Acteur

    Titre Film Acteur calcul Liaison
    1 #N/A
    2 #N/A

    Formule case Liaison : =EQUIV(C7;Films!$B$2:$B$25000;0)
    Formule Case Acteur : =SI(ESTNUM($D7);INDEX(Films!M$2:M$25000;$D7);"")

    Et j'ai donc créer une colonne B Liaison dans ma feuille film avec cette formule : =SI(M2="*Acteur!$B$4*";MAX($M$1:M1)+1;"")

    Mes formules fonctionnent a partir du moment que je met le contenu complet de la liste des acteurs, mais ne fonctionne pas avec juste le nom d'un acteur.

    A mon avis c'est sur partie là =SI(M2="*Acteur!$B$4*"; qu'il faut que je puisse indiqué si la case Acteur $B$4 contient avec des **, mais je n'y parviens pas.

    merci

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu te compliques la vie. Utilise plutôt un filtre.

    Sur le tableau de ta première page, tu sélectionnes tout et tu fais :
    Ruban Données > Icone Filtrer

    Tu remarques qu'une petite flèche s'est placé dans chaque case des titres de colonne.
    Tu cliques sur celle de la colonne des interprètes et tu fais :
    Filtre Textuel > Contient
    Et tu indiques sur qui ça doit filtrer.

    En plus, ça pourra faire beaucoup plus que ce que tu aurais pu faire avec ta méthode.
    Par exemple, ça pourrait te donner la liste de tous les films dans lesquels Humphrey Bogart et Lauren Bacall ont tourné ensemble, les films avec l'un des Douglas (Kirk ou Michael) ou les films dans lesquels Georges Clooney a joué mais n'était pas l'interprète principal.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien audiovisuel
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut
    Bonjour Menhir,

    Merci pour ton intervention

    Les filtres je connais très bien cela et je les utilise sans cesse.

    Mais en fait je veux que la recherche se fasse sur une autre feuille pour des utilisateurs. La feuille Films et verrouillés aux utilisateurs et en plus elle contient en 30ène de colonnes et je n'ai besoin de faire ressortir qu'une liste de titre.

    Tu as par contre bien saisie ce que je voulais faire, mais cependant il faut que ce soit sur une feuille.

    Merci

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ce que tu demandes n'est pas possible à faire avec des fonctions Excel (du moins, à ma connaissance). Il faut passer par du VBA.

    Par contre, pour insister dans la solution avec filtre, si tu veux empêcher l'utilisation de la feuille Film, rien ne t'empêche de mettre dans une seconde feuille de simples formules du type :
    pour "reproduire ta feuille Film limitée à certaines colonne et de placer ton filtre sur cette seconde feuille.

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    peut-être via les filtres avancés ?

    http://philippetulliez.developpez.co...dvancedfilter/

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 671
    Par défaut
    Bonjour,

    Pour commencer, les filtres élaborés proposés par nos camarades ci-dessus me semblent être la meilleure solution.

    Maintenant, si tu ne veux pas de macro, ce que tu souhaites reste possible en passant par une formule matricielle:
    Dans une des colonnes de l'onglet Acteur, copie la formule suivante (ex: en C2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(PETITE.VALEUR(SI(NON(ESTERREUR(CHERCHE(Acteur!$B$4;Films!$M$2:$M$5)));LIGNE(Films!$A$2:$A$5)-LIGNE(Films!$A$1); 10000000); LIGNE()-LIGNE(Acteur!$D$1)); "")
    A valider par Ctrl+Maj+Entrée car c'est une formule matricielle.
    Cette formule te donne la position du premier film contenant l'acteur cité en B4. Si tu étires la formule vers le bas, tu auras la position de son 2ème film, etc. Il ne reste plus qu'à exploiter ce chiffre dans chaque colonne (titre, acteurs...) via un INDEX:
    Titre en D2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(Films!$A$2:$A$25000; $C2); "")
    Acteurs en E2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(Films!$M$2:$M$25000; $C2); "")
    Etc.

    Pas besoin de ta colonne Liaison dans l'onglet Films.
    NB1: La formule que je te propose en colonne C donne 10000000 pour tous les films dans lesquels l'acteur ne joue pas; c'est normal. Je te conseille de masquer cette colonne.
    NB2: Il serait plus propre de travailler sur des tableaux structurés plutôt que de taper directement dans 25000 lignes.

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 671
    Par défaut
    Attention il y a tout de même une limitation:
    Si un nom d'acteur est inclus dans un autre nom (ex: Paul Walker et Paul Walkers), "Paul Walker" te renverra les résultats pour les 2 acteurs.
    L'avantage est que tu peux chercher tous les films des acteurs dont le prénom (ou le nom...) est Gérard par exemple.

    Si tu veux éviter cette limitation, je devrais pouvoir te proposer une solution à base d'expressions régulières mais il faut une fonction personnalisée.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien audiovisuel
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Doubs (Franche Comté)

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

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Par défaut
    Bonjour Promethee,

    Merci à tous aussi pour votre aide et vos propositions.

    J'ai essayer tes formules Promethee. CA fonctionne dans l'idée, mais pas bien.

    Par exemple, si je fait une recherche directement dans ma liste (sur la feuille films) avec Sylvester stallone par exemple, je trouve 6 réponses.
    Depuis mon tableau (feuille acteur) en faisant une recherche sur Sylvester, il ne me trouve plus que 3 films et si je met en entier Sylvester Stallone, il m'en trouve plus que 2. J'ai vérifier l'orthographe du nom, la syntaxe Maj/min, tous est pareil. Et j'ai le même problème avec n'importe quel autre nom d'acteur.

    Merci

    EDIT : Si YOUPI ça fonctionne, merci énormément Promethee. Ton exemple va me permettre de pouvoir faire plein d'autre choses en plus. Merci encore

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/02/2009, 18h04
  2. Réponses: 2
    Dernier message: 04/09/2006, 16h58
  3. Réponses: 2
    Dernier message: 29/05/2006, 15h58
  4. Réponses: 7
    Dernier message: 28/02/2006, 16h46

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