Extraire des valeurs dans une chaine
Résolu
wateroc
-
wilfried_42 Messages postés 907 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Extraire des valeurs dans une chaine
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Chaine tnt gratuite sur mobile - Guide
- Extraire texte d'une image - Guide
4 réponses
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.
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.
Bonjour
voici 2 formules matricielle queque soient la position et le nombre de caracteres entre guillements
entre les 2 premier guillemets
entre le 3eme et le 4eme
en souligné les numero des guillemets concernés
pour valider une formule matricielle appyer simultanement sur CTRL + MAJ + ENTREE
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