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 :

Remplacer une chaine par une autre se trouvant dans une liste


Sujet :

Excel

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut Remplacer une chaine par une autre se trouvant dans une liste
    Bonjour,


    J'ai une liste de correspondance de mots qui doivent être remplacé par un autre mot.
    Ex : si la chaine contient le mot tutu, tutu doit être remplacé par toto. si la chaine contient le mot titi, titi doit etre remplacé par tata...

    J'ai vu que la fonction SUBSTITUE permet de remplacer un mot par un autre mais comment faire pour gérer une liste de mot à remplacer ? (je peux mettre des SUBSTITUE dans des SUBSTITUE mais c'est super lourd à gérer)

    Merci d'avance

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Tu peux peut-être utiliser RECHERCHEV pour trouver dans ta liste par quel mot tu dois remplacer.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut
    je ne vois pas trop comment faire avec cette fonction vu qu'il faut au départ balayer la liste (et non pas rechercher une valeur figée dans une liste)

  4. #4
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Par défaut Trois façons de voir les choses
    Citation Envoyé par boboss123 Voir le message
    je ne vois pas trop comment faire avec cette fonction vu qu'il faut au départ balayer la liste (et non pas rechercher une valeur figée dans une liste)
    Si la contrainte est de le faire en Excel uniquement avec des formules, il y a au moins deux façons simples et un peu bourrines de le faire.
    Tout dépend du contexte de besoin et d'utilisation.

    1 Si tu veux juste appliquer ta liste de temps en temps à une chaîne de texte particulière et que ta liste soit aisément maintenable.
    Exemple : Tu écrits le texte en entrée dans une cellule. Le nouveau texte est disponible dans une autre.

    2 Si tu veux pouvoir appliquer ta fonction à plusieurs champs texte en ligne ou en colonne quitte à gâcher de la puissance de calcul.
    Exemple : Tous les textes sont sur une ligne ou une colonne. Les nouveaux textes sur une autre ligne ou colonne.

    Si tu as la possibilité de faire du VBA dans ton fichier, ton moteur de recherche préféré pourra t'expliquer comment créer une "substitue" sur mesure qui travaille sur une liste de texte à remplacer.

    Dans chacun des trois cas je peux te fournir la méthodologie appropriée et les formules/code VBA.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut
    Je cherche une solution avec 4 colonnes de manière à pouvoir facilement modifier mes différents éléments :
    - liste ancien texte
    - liste nouveau texte
    - liste chaines à traiter
    - liste de sortie

    => Pas besoin que ça soit rapide (car 500 chaines a traiter max)
    => Si possible utiliser une formule

    => j'ai peut-être trouvé une solution mais il faudrait une colonne qui me renvoie le numéro de la ligne de l'éléemnt trouvé avec RECHERCHEV

    Merci d'avance

  6. #6
    Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2017
    Messages : 7
    Par défaut
    En mode bourrin pas optimisé du tout je te propose la solution suivante en 2 onglets.
    Ce n'est pas de la top conception mais çà répond au besoin...

    Onglet 1

    Liste ancien texte Liste nouveau texte
    Ancien texte 1 Nouveau texte 1
    Ancien texte 2 Nouveau texte 2
    Ancien texte 3 Nouveau texte 3

    Onglet 2

    =SI(INDEX('Onglet 1'!$A$1:$B$500;COLONNE()-1;1)<>"";INDEX('Onglet 1'!$A$1:$B$500;COLONNE()-1;1);"COLONNE_STOP")
    liste de sortie liste chaines à traiter =SI(INDEX('Onglet 1'!$A$1:$B$500;COLONNE()-1;2)<>"";INDEX('Onglet 1'!$A$1:$B$500;COLONNE()-1;2);"COLONNE_STOP")
    =C3 Chaines à traiter 1 - Ancien texte 1 =SI(C$1="COLONNE_STOP";$B3;SUBSTITUE(D3;C$1;C$2))
    =C4 Chaines à traiter 2 - Ancien texte 2 =SI(C$1="COLONNE_STOP";$B4;SUBSTITUE(D4;C$1;C$2))

    Étendre la dernière ligne autant de fois que besoin.
    Étendre la dernière colonne autant de fois que besoin (jusqu'à la COLONNE_STOP inclus).

    Attention si tu as plus de valeurs de texte à substituer que le nombre de colonne disponibles dans ton fichier Excel, il faut faire plusieurs onglet ou passer à une autre méthode.

  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
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Autre possibilité avec formule, les listes ancien texte, nouveau texte, chaines à traiter, chaines traitées étant respectivement en colonnes A, B, D, E, la formule en E2 est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUBSTITUE(D2;INDEX($A$2:$A$4;SOMMEPROD({1;2;3}*ESTNUM(CHERCHE($A$2:$A$4;D2))));INDEX($B$2:$B$4;SOMMEPROD({1;2;3}*ESTNUM(CHERCHE($A$2:$A$4;D2)))))
    Nom : substitue.JPG
Affichages : 1709
Taille : 23,7 Ko
    Dans la formule de l'exemple choisi, la matrice {1;2;3} peut si l'on veut se remplacer par LIGNE(1:3) ou encore par LIGNE($A$2:$A$4)-1.
    Une remarque : ceci ne fonctionne qu'à la condition qu'une chaine à traiter ne comporte pas plus d'un texte à remplacer. Dans le cas contraire, il vaut mieux se tourner vers le VBA.
    Cordialement
    Claude

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 849
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 849
    Par défaut
    ok merci beaucoup

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/04/2017, 13h07
  2. [Python 3.X] Comment remplacer un texte capturé dans une regex par un autre et reinjecter le tout ?
    Par markham dans le forum Général Python
    Réponses: 5
    Dernier message: 22/11/2016, 17h38
  3. Remplacer lettres contenues dans une variable par d'autres lettres
    Par AZzjeioafh dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 02/12/2009, 18h53
  4. remplacer les occurences d'un caractere dans une chaine par un autre
    Par lity7 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/03/2008, 12h02
  5. Réponses: 9
    Dernier message: 31/07/2007, 01h13

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