Problème STXT et TROUVE
Le Pingou Messages postés 12640 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous !
Dans une colonne (F), j'ai les valeurs ci-dessous qui reprennent entre () des dimensions que je souhaite extraire en case séparées.
7K170-L170 (630x1206)_
6P175-Y135 (823x929)_
5P175-Y135 (875x875)_
7K170-L170 (846x907)_
6P(e)145-L(b)170gr (1540x2210)_
6P(e)145-L(b)170gr (1160x1554)_
6P(e)145-L(b)170gr (1540x2210)_
6P(e)145-L(b)170gr (1430x1100)_
En colonne Q, via la formule ci-dessous, j'arrive à obtenir la 1e dimensions tel que recherchée
=STXT(F4;TROUVE("(";F4)+1;TROUVE("x";F4)-TROUVE("(";F4)-1)
En colonne S, avec la formule ci-dessous, j'obtiens la 2e dimensions :
=STXT(F4;TROUVE("x";F4)+1;TROUVE(")";F4)-TROUVE("x";F4)-1)
Sauf que ces formules ne fonctionnent pas pour les 4 dernières cases de la colonne F, parce qu'il y a d'autres () dans la cases.
Connaissez-vous une formule (+ explication) qui permet de trouver la dimensions recherchées, aussi bien pour les 4 premieres cases que pour les 4 suivantes ?
D'avance, un tout grand merci pour votre aide ! :D
Keusti
PS : La sécu du boulot m'empêche tout accès à un hébergeur de fichier, donc je ne sais pas vous joindre d'exemple. J'espère cependant que ma demande est claire.
Windows / Chrome 109.0.0.0
- Problème STXT et TROUVE
- Stxt en anglais - Guide
- Ou se trouve le presse papier - Guide
- Pourquoi ma tv ne trouve pas toutes les chaînes - Guide
- Où se trouve mon adresse url ? - Guide
- Ou se trouve la corbeille de whatsapp - Guide
4 réponses
Bonjour,
Sans une vision exhaustive des valeurs possibles c'est toujours problématique.
Avec les valeurs indiquées on peut plutôt que "(" utiliser " (" et pour ")" prendre ")_" alors :
=STXT(F4;TROUVE(" (";F4)+2;TROUVE("x";F4)-TROUVE(" (";F4)-2)
=STXT(F4;TROUVE("x";F4)+1;TROUVE(")_";F4)-TROUVE("x";F4)-1)
Bonjour,
Un possibilité pour la première dimension (à adapter pour la deuxième)
=STXT(DROITE(F1;12);TROUVE("(";DROITE(F1;12))+1;TROUVE("x";DROITE(F1;12))-TROUVE("(";DROITE(F1;12))-1)
Hello Pingou !
Merci pour ton aide !
J'ai cependant remarqué que la structure des données que je cherchais a extraire variait plus que je ne le pensais.
Ci-dessous, les différentes structures rencontrées :
7K170-L170 (630x1206)_
2P175-P175
3K170-L170 (396x1450) R_
3P175-Y135 (2400 x 1600)
2P175-P175 _
2P175-P175 (1600x1600) HP Calibration_
6P(e)145-L(b)170gr (1430x1100)_
L'idéal serait donc une formule permettant d'extraire les caractères numériques écrits entre la dernière "(" et le "x".
Je précise "numérique" car dans une des structures, il y a des espaces entre les dimensions et le "x" :).
Bonjour,
Si les nombres cherchés sont toujours à 3 ou 4 chiffres:
=SI(ESTERREUR(TROUVE("x";A2));"";SUBSTITUE(STXT(A2;TROUVE("x";A2)-4;4);"(";"")*1)
=SI(ESTERREUR(TROUVE("x";A2));"";SUBSTITUE(STXT(A2;TROUVE("x";A2)+1;5);")";"")*1)
Comme l'a décrit jee pee il faut identifier les éléments qui se répètent toujours et les particularités, pour pouvoir établir ou optimiser des formules.
On pourrait envisager de supprimer les espaces, mais il faut savoir si ce sont des espaces ordinaires "Car(32)" ou des espaces insécables "Car(160)".
En bref : hors du périmètre complet la validité des formules est une loterie.
Bonjour,
Une autre solution:
'Premier
=SIERREUR(CNUM(STXT(F1;TROUVE(" (";F1)+2;TROUVE("x";F1)-TROUVE(" (";F1)-2));"")
'deuxième
=SIERREUR(CNUM(STXT(SUBSTITUE(F1;" ";"";1);TROUVE("x";SUBSTITUE(F1;" ";"";1))+1;TROUVE(")";SUBSTITUE(F1;" ";"";1);TROUVE("x";SUBSTITUE(F1;" ";"";1);1))-TROUVE("x";SUBSTITUE(F1;" ";"";1))-1));"")
Un grand merci ! C'est tout simple, je n'avais pas pensé ! :)
En appliquant, je remarque cependant que ma colonne F (depuis laquelle je souhaite extaire les dimensions) n'a pas toujours la même structure.
Parfois, il n'y a pas de (), parfois il y en a plusieurs, et parfois il y a des caractères après les parenthèses (par exemple :" R_", "_", ...)
Voici les formats rencontrés :
7K170-L170 (630x1206)_
2P175-P175
3K170-L170 (396x1450) R_
3P175-Y135 (2400 x 1600)
2P175-P175 _
2P175-P175 (1600x1600) HP Calibration_
6P(e)145-L(b)170gr (1430x1100)_
Existe-t-il une formule permettant d'extraire les valeurs numériques entre la dernière "(" et le "x" ?
Je dis "numérique" car pour une des structures, il y a des espaces entre la dimension et le "x".
Tu vois, c'est presque toujours le cas que la situation présentée au départ n'est pas complète. Et alors nos propositions ne peuvent pas être bonnes.
Il te reste que tu peux utiliser " ("
si pas de " (", il faut rajouter dans la formule un SIERREUR()
pour transformer une chaine en numérique c'est CNUM(" 300 ")
et on pourrait aussi utiliser la recherche de la position de la dernière ( et pareil pour )
=CHERCHE("µ";SUBSTITUE(F4;"(";"µ";NBCAR(F4)-NBCAR(SUBSTITUE(F4;"(";""))))+1