Extraction d'une chaîne de caractères

Fermé
m.messaoud29 Messages postés 17 Date d'inscription jeudi 19 octobre 2017 Statut Membre Dernière intervention 26 mars 2021 - Modifié le 19 oct. 2017 à 14:27
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 - 20 oct. 2017 à 18:16
Bonjour A tous !

Franchement les gars ça fait deux jours que je galère afin de trouver une solution.
Si quelqu'un pouvait m'aider je lui en serais vraiment reconnaissant !

Alors voilà mon problème :

Je cherche à extraire toutes les chaîne de caractère "mo" suivi d'un "chiffre".
J'ai écrit les résultats que je dois obtenir sur le logiciel excel ci-joint.
Je m'explique --->

Voici quelques chaînes de caractères :

1) "sanitaires hommes Co B 3è étage Module 9"
2) "rdc mod 2 SAN H"
3) "niv 2 mo 2 co A"

Moi je veux extraire :
1) Mo 9
2) mo 2
3) mo 2

Je sais qu'il est possible d'extraire en utilisant cette formule : "=STXT(A1;1;TROUVE("Module";A1;1)+7)"

mais je ne parviens paas !

Voici une image excel sur lequel je travail :



Merci d'avance pour toute aide que vous pourrez m'apportez !

A+
A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié le 19 oct. 2017 à 15:16
Bonjour
voyez ce modèle
https://mon-partage.fr/f/rXW8dTun/
mais il correspond exactement aux exemples que vous donnez,
la formule utilisée impose certains critères:
il n'y a pas de texte mo avant celui concerné
le texte mo ou mod ou modèle est suivi au maximum de deux blanc
le N° de module ne dépasse pas un seul chiffre
si ce n'est pas le cas, on pourra peut être voir autrement ou en deux temps si besoin, et donc revenez avec une liste plus complète de vos cas de figures
l
crdlmnt


La qualité de la réponse dépend surtout de la clarté de la question, merci!
1
m.messaoud29 Messages postés 17 Date d'inscription jeudi 19 octobre 2017 Statut Membre Dernière intervention 26 mars 2021
19 oct. 2017 à 15:40
WOOOOOOOWW !! Franchement vous êtes vraiment génial ! Merci infiniment.
Je n'aurait jamais pu trouver cette formule tous seul.
dans mon tableau il apparaît quelques anomalies :

Mo17 RDC Co C #VALEUR!
San H RDC Co B mo9 #VALEUR!

Mais lorsque je rajoute un espace de cette facon entre "mo" et le "chiffre" le problème est réglé :

Mo 17 RDC Co C Mo 17
San H RDC Co B mo 9 Mo 9

Comment pensez vous que je dois réadapter cette formule du coup :

=SI(NB.SI(A20;"*mo*");"Mo";"")&" "&STXT(SUBSTITUE(STXT(A20;CHERCHE("mo";A20;1);20);" ";"///";1);TROUVE("///";SUBSTITUE(STXT(A20;CHERCHE("mo";A20;1);20);" ";"///";1)

Mercii pour votre temps !!!

Cordialement.
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
Modifié le 19 oct. 2017 à 15:31
Bonjour M.messaoud29

Essayer ceci

=SIERREUR("mo "&STXT(A1;CHERCHE("module";A1;1)+7;2);SIERREUR("mo "&STXT(A1;CHERCHE("mod";A1;1)+4;2);"mo "&STXT(A1;CHERCHE("mo";A1;1)+3;2)))

C'est en forgeant que l'on devient forgeron. -   C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
1
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
19 oct. 2017 à 15:44
Bonjour à tous,
autre possibilité: 1 ou 2 chiffres mais il faut un espace entre le chiffre cherché et le texte qui suit.
="mo "&
SUPPRESPACE(STXT(A2;CHERCHE(" ";A2;CHERCHE("mo";A2;1))+1;2))
1
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
20 oct. 2017 à 18:16
Bonjour,
J'avais cherché une formule courte mais avec des conditions qui se vérifient.

En effet la formule ne fontionne pas si le texte contient: Mo7 , Mo entre 3A et 3B, Mo 6B, mod 6:, ou, module pair.
En fait elle cherche "mo" puis le premier espace qui suit et renvoie les 2 caractères après cet espace.

Il n'y a pas de miracle, si la base n'est pas rigoureuse la formule se complique et peut devenir irréalisable dans le pire des cas.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
19 oct. 2017 à 16:55
Bonjour,

Pour un n° de module de 0 à 999 avec ou sans espace :
=SIERREUR("mo " & GAUCHE(STXT(STXT(A1;TROUVE("mo";A1&"mo");99);MIN(TROUVE({1;2;3;4;5;6;7;8;9;0};STXT(A1;TROUVE("mo";A1&"mo");99)&"1234567890";3));3);SOMMEPROD(ESTNUM(STXT(STXT(STXT(A1;TROUVE("mo";A1&"mo");99);MIN(TROUVE({1;2;3;4;5;6;7;8;9;0};STXT(A1;TROUVE("mo";A1&"mo");99)&"1234567890";3));3);LIGNE(DECALER($A$1;0;0;NBCAR(STXT(STXT(A1;TROUVE("mo";A1&"mo");99);MIN(TROUVE({1;2;3;4;5;6;7;8;9;0};STXT(A1;TROUVE("mo";A1&"mo");99)&"1234567890";3));3));1));1)*1)*1));"") 

1
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
20 oct. 2017 à 16:27
Bonjour m.messaoud29.

Désolé suite à ton MP, je vois qu'il faut employer CHERCHE() à la place de TROUVE()
Plutôt que répondre en MP, il vaut mieux répondre ici.

Pour un texte qui se trouve en colonne C, la formule en D2 est :
=SIERREUR("mo " & GAUCHE(STXT(STXT(C2;CHERCHE("mo";C2&"mo");99);MIN(CHERCHE({1;2;3;4;5;6;7;8;9;0};STXT(C2;CHERCHE("mo";C2&"mo");99)&"1234567890";3));3);SOMMEPROD(ESTNUM(STXT(STXT(STXT(C2;CHERCHE("mo";C2&"mo");99);MIN(CHERCHE({1;2;3;4;5;6;7;8;9;0};STXT(C2;CHERCHE("mo";C2&"mo");99)&"1234567890";3));3);LIGNE(DECALER($A$1;0;0;NBCAR(STXT(STXT(C2;CHERCHE("mo";C2&"mo");99);MIN(CHERCHE({1;2;3;4;5;6;7;8;9;0};STXT(C2;CHERCHE("mo";C2&"mo");99)&"1234567890";3));3));1));1)*1)*1));"") 


Cordialement
Patrice
0