Extraire des valeurs dans une chaine

Résolu
wateroc -  
wilfried_42 Messages postés 907 Date d'inscription   Statut Contributeur Dernière intervention   -
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

4 réponses

m@rina Messages postés 23929 Date d'inscription   Statut Non membre Dernière intervention   11 465
 
Bonjour,

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

m@rina
0
al1_delon Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   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
wateroc
 
Merci à tous les 2 pour m'avoir consacré du temps.

Bravo à al1 pour la solution

A+
0
wilfried_42 Messages postés 907 Date d'inscription   Statut Contributeur Dernière intervention   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