Extraire des initiales entre 2 symboles excel

Résolu
clemence40 Messages postés 3 Statut Membre -  
 clemence40 -
Bonjour,

Je suis confrontée à un problème sur l'extraction dans une cellule excel entre deux symboles.

Je souhaiterais extraire les initiales des villes entre deux symboles.
Voici l'exemple : Claire Monet - Las Vegas,NV

C'est toujours le même type de symbole à savoir : "-" et "," (avec les mêmes espaces)
Toutefois les villes changent (Miami,New York etc) et la première partie aussi.

J'ai fait plein d'essai mais n'y arrive pas

Merci de votre réponse et de votre aide

4 réponses

  1. tchernosplif Messages postés 714 Statut Membre 249
     
    Bonjour,

    Dans un premier temps, extraire le nom de la ville (ex:A1)

    =STXT(A1;CHERCHE("-";A1;1)+2;CHERCHE(",";A1;1)-CHERCHE("-";A1;1)-2)

    Claire Monet - Las Vegas,NV => Las Vegas (ex:B1)

    ensuite via une table de correspondances

    =recherchev(B1;plage-table-correspondance;2;0) => LV (ex:C1)
    1
    1. clemence40 Messages postés 3 Statut Membre
       
      Merci!!
      0
  2. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    J'avais cette formule :

    =STXT(A2;CHERCHE("-";A2)+2;1)&SI(CHERCHE(",";A2)>CHERCHE(" ";A2;CHERCHE("-";A2)+2);STXT(A2;CHERCHE(" ";A2;CHERCHE("-";A2)+2)+1;1);"")

    qui marche pour un mot simple ou composé de deux mots.

    A+

    pépé
    1
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Vu la complexité des formules pour résoudre le pb

    une fonction personnalisée pour ville en 1 ou 2 mots
    (Rio de Janeiro donnerait RD ==> tu dis au cas où...)

    Function initiales(texto As String) As String 
    Dim separe As Variant
    separe = Split(texto, ",") 
    separe = Split(separe(0), "-") 
    separe = Split(Trim(separe(1))) 
    If UBound(separe) = 0 Then 
        initiales = UCase(Left(separe(0), 2)) 
    Else 
        initiales = UCase(Left(separe(0), 1)) & UCase(Left(separe(1), 1)) 
    End If 
    End Function

    Michel
    1
    1. clemence40
       
      Super merci beaucoup!!!
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Pour New York: NY
    OK
    mais pour Miami M tout seul ?
    0
    1. clemence40 Messages postés 3 Statut Membre
       
      C'est vrai je n'ai pas été très précise :

      Pour les mots composés : les deux initiales
      Pour les mots "simples" : les deux premières lettres

      Merci!
      0