Extraire des valeurs dans une chaine

Résolu
wateroc -  
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,

Je cale sous excel ! Je sais bien que le sujet a déjà été aborder mais je n'arrive pas à appliquer les conseils à mon cas.
Voilà le problème :
Je dois extraire les valeurs entre guillemets dans les chaines suivantes ; par exemple,
  <chart1_CategoryGroup1 Label="5" DataValue0="80" />
  <chart1_CategoryGroup1 Label="12" DataValue0="7" />

comment puis je faire pour les repérer et les extraire vers une autre cellule du tableau (5 et 80 puis 12 et 7)?
Merci à tous par avance
David
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. m@rina Messages postés 27451 Date d'inscription   Statut Modérateur Dernière intervention   11 562
     
    Bonjour,

    Les chiffres à trouver sont toujours au nombre de 1 ou 2 ?

    m@rina
    0
  2. al1_delon Messages postés 263 Statut Membre 25
     
    Bonjour,

    1ère donnée:
    <chart1_CategoryGroup1 Label="5" DataValue0="80" /> en C8
    2ème donnée:
    <chart1_CategoryGroup1 Label="12" DataValue0="7" /> en C9

    =STXT(C8;31;1) extrait 5
    =STXT(C8;46;2) extrait 80
    =STXT(C9;31;2) extrait 12
    =STXT(C8;47;1) extrait 7

    le probleme est que les données numériques sont de longueur variable.
    donc pour la 1ère donnée que je place en I8:

    =SI(ESTNUM(CNUM(STXT(C9;31;2)));CNUM(STXT(C9;31;2));CNUM(STXT(C9;31;1))) extrait 5 en I8.
    =SI(NBCAR(I8)=2;SI(ESTNUM(CNUM(STXT(C8;47;2)));CNUM(STXT(C8;47;2));CNUM(STXT(C8;47;1)));SI(ESTNUM(CNUM(STXT(C8;46;2)));CNUM(STXT(C8;46;2));CNUM(STXT(C8;46;1)))) extrait 80 en J8

    Par contre il faut que le texte soit toujours le même.
    0
  3. wateroc
     
    Merci à tous les 2 pour m'avoir consacré du temps.

    Bravo à al1 pour la solution

    A+
    0
  4. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    voici 2 formules matricielle queque soient la position et le nombre de caracteres entre guillements
    entre les 2 premier guillemets
    =STXT(A1;PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);1)+1;PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);2)-PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);1)-1)


    entre le 3eme et le 4eme
    =STXT(A1;PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);3)+1;PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);4)-PETITE.VALEUR(SI(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)=CAR(34);LIGNE(INDIRECT("1:"&NBCAR(A1)));9^9);3)-1)

    en souligné les numero des guillemets concernés

    pour valider une formule matricielle appyer simultanement sur CTRL + MAJ + ENTREE
    0