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 les caractères qui sont dans une chaîne mais pas dans l'autre [XL-2013]


Sujet :

Excel

  1. #1
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut Extraire les caractères qui sont dans une chaîne mais pas dans l'autre
    Bonjour,

    je cherche une formule ou une fonction afin d'extraire les caractères présents dans une chaîne mais pas dans une seconde.
    Exemple :
    Chaine A : ABCDE
    Chaine B ADC
    Résultat : BE

    A noter :
    - le même caractère ne revient au maximum qu'une fois par chaîne, dans mon besoin, le cas ACCDEE par exemple ou AA ne peut pas exister.
    - J'ai une fomule pour trier la chaîne par ordre alphabétique donc je peux partir de ABCDE à comparer à ACD
    - il peut également y avoir des caractère dans B qui ne sont pas dans A
    par exemple chaine A = ABCDE
    chaine B = ADZ
    Résultat attendu : BCE soit les caractère de la chaine A qui ne sont pas dans B (donc ici le Z ne compte pas)
    Existe-t-il une telle formule dans excel ?
    Merci de votre aide précieuse

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par cladsam Voir le message
    Existe-t-il une telle formule dans excel ?
    En théorie oui mais en pratique, ce serait trop compliqué.

    En théorie, il serait possible de faire une concaténation des caractères de la chaine 1 se trouvant à gauche et à droite du premier caractère de la chaine 2 et d'utiliser le résultat pour faire de même avec le second caractère puis le troisième et ainsi de suite, en bourrant tout ça de SI pour pallier au fait qu'on ignore la longueur de la chaîne 2.
    En pratique, je te souhaite bien du courage pour écrire une telle formule.

    Mais il ne serait pas très compliqué de faire une fonction personnalisée en VBA qui aurait tes deux chaînes en paramètres et renverrait la différence en ayant scruté chaque caractère avec deux boucles For to imbriquées.

  3. #3
    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,
    Voici une fonction personnalisée qui donne la réponse attendue pour les deux exemples proposés.
    La fonction REPLACE permet de s'en sortir avec une seule boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function ch1_sans_car_ch2(cel1 As Range, cel2 As Range) As String
    Dim chaine2 As String, i As Integer
        ch1_sans_car_ch2 = cel1.Value
        chaine2 = cel2.Value
        For i = 1 To Len(chaine2)
            ch1_sans_car_ch2 = Replace(ch1_sans_car_ch2, Mid(chaine2, i, 1), "", 1, -1, vbTextCompare)
        Next i
    End Function
    Nom : Chaine.PNG
Affichages : 135
Taille : 5,7 Ko

    Cordialement
    Claude

  4. #4
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Merci beaucoup !

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

Discussions similaires

  1. [11g] Extraire les x et y d'une géométrie de point dans une colonne
    Par bernards111 dans le forum Débuter
    Réponses: 1
    Dernier message: 11/12/2014, 13h13
  2. Objet existant reconnu dans une fonction mais pas dans une autre
    Par Jiyuu dans le forum Général Python
    Réponses: 0
    Dernier message: 20/09/2011, 18h19
  3. Réponses: 5
    Dernier message: 18/03/2009, 19h31
  4. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  5. Réponses: 9
    Dernier message: 13/03/2008, 01h34

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