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

Débutez Discussion :

Trouver une chaine dans une autre chaine


Sujet :

Débutez

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut Trouver une chaine dans une autre chaine
    bonjour,


    j'ai un fichier avec des lignes d'adresses et je dois faire un peu de ménage:

    adresse1= résidence Denise Eliane, 14 avenue nationale porte4
    adresse2= 14 avenue nationale


    je dois faire une condition telle que si l'adresse 2 existe dans l'adresse1 je dois supprimer l'adresse2

    j'ai pas su comment faire!!!


    je vous remercie.

  2. #2
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    j'ai essayé avec la fonction FIND mais ça ne marche pas!!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIND(adresse1, adresse2);

    trouver l'adresse2 dans l'adresse1

  3. #3
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    La fonction FIND renvoi la position du premier caractère cherché, si la valeur est trouvée

    donc, pour ta demande, essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    data test;
    adresse1="résidence Denise Eliane, 14 avenue nationale porte4";
    adresse2="14 avenue nationale";
    if find(adresse1,adresse2) >0 then adresse1=tranwrd(adresse1,adresse2,'');
    run;

  4. #4
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    merci!!! ça marche!

  5. #5
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    désolée, je reviens vers vous

    au fait, j'ai un autre exemple où ça ne marche pas et là j'ai essayé toutes les fonctions, hélas j'y arrive pas.

    ex1
    adresse1=appartement 302 le jardin des roses
    adresse2=bâtiment B
    adresse3=appartement 302 bâtiment B

    ex2
    adresse1=villa A1 RES T
    adresse2=bâtiment C
    adresse3=bâtiment C RES T


    ma condition: si l'adresse 3 existe dans l'adresse 1 et l'adresse2 ( ce qui est mes deux cas) on la supprime => adresse3=""

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    pour ta nouvelle demande, tu peux essayer ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data address ;
    input @1 address $20. ;
    if (find(address, "RES T") and find(address, "bâtiment C"))>0 THEN delete ;
    datalines;
    villa A1 RES T
    bâtiment C
    bâtiment C RES T
    ;
    Run ;

  7. #7
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    merci pour votre réponse!!!

    mais cela marche juste avec cet exemple, au fait les lignes d'adresses changent et les positions des mots aussi, donc, votre solution marche juste avec le deuxième exemple!!!!

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Tu veux dire que la fonction FIND soit en fonction adresse1, adresse2 et adresse3 !!

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Voici un code pour les deux exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (find(adresse1, "RES T") and find(adresse2, "bâtiment C"))>0 THEN adresse3= " " ;
    if (find(adresse1, "appartement 302") and find(adresse2, "bâtiment B"))>0 THEN 
    adresse3= " " ;

  10. #10
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonjour,

    ça ne réglera pas tout, mais ça réglera le cas de tes deux exemples.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    data adr;
    length adresse1 adresse2 adresse3 $50 ;
    adresse1="appartement 302 le jardin des roses";
    adresse2="bâtiment B";
    adresse3="appartement 302 bâtiment B";
    output;
    adresse1="villa A1 RES T";
    adresse2="bâtiment C";
    adresse3="bâtiment C RES T";
    output;
    run;
     
    data adr;
    set adr;
    if index(adresse3,strip(adresse2)) 
    and index(adresse1,strip(tranwrd(adresse3,strip(adresse2),""))) then adresse3='';
    run;

  11. #11
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 198
    Points : 94
    Points
    94
    Par défaut
    MERCI à vous deux je vais m'adapter par rapport à vos réponses.

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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