Extraction d'une chaîne de caractères complexe
Résolu/Fermé
m.messaoud29
Messages postés
17
Date d'inscription
jeudi 19 octobre 2017
Statut
Membre
Dernière intervention
26 mars 2021
-
26 déc. 2017 à 15:37
Mazzaropi Messages postés 1985 Date d'inscription lundi 16 août 2010 Statut Contributeur Dernière intervention 24 mai 2023 - 26 déc. 2017 à 23:44
Mazzaropi Messages postés 1985 Date d'inscription lundi 16 août 2010 Statut Contributeur Dernière intervention 24 mai 2023 - 26 déc. 2017 à 23:44
A voir également:
- Extraction d'une chaîne de caractères complexe
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
5 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
26 déc. 2017 à 16:27
26 déc. 2017 à 16:27
Bonjour
une solution partielle ici..
mais elle strictement liée au format d'écriture et ne fonctionne pas à tous les coups selon les textes
En particulier, elle ne fonctionne pas lorsque niv est précédé d'un * collé comme par exemple en ligne 4
pour résoudre ce point là, vous pouvez renvoyez vos données dans une seconde colonne avec cette" formule:
=SUBSTITUE(A1;"*";" ") avant d'appliquer celle du modèle, et faire un copier collage spécial valeur ça devrait améliorer mais je n'ai plus le temps là de faire le test
https://mon-partage.fr/f/KvZGKvG0/
crdlmnt
une solution partielle ici..
mais elle strictement liée au format d'écriture et ne fonctionne pas à tous les coups selon les textes
En particulier, elle ne fonctionne pas lorsque niv est précédé d'un * collé comme par exemple en ligne 4
pour résoudre ce point là, vous pouvez renvoyez vos données dans une seconde colonne avec cette" formule:
=SUBSTITUE(A1;"*";" ") avant d'appliquer celle du modèle, et faire un copier collage spécial valeur ça devrait améliorer mais je n'ai plus le temps là de faire le test
https://mon-partage.fr/f/KvZGKvG0/
crdlmnt
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
26 déc. 2017 à 17:14
26 déc. 2017 à 17:14
Bonsoir le fil,
une autre approche parce qu'il y a plusieurs variables à traiter, les espaces, les étoiles, majuscule et minuscule etc
si ton tableau commence en A1 en B1 par exemple coller cette formule on verra après si elle peut être raccourcie
=SIERREUR(GAUCHE(DROITE(SUBSTITUE(A1;"niv";"Niv");NBCAR(A1)-TROUVE("Niv ";SUBSTITUE(A1;"niv";"Niv");1)+1);5);SIERREUR(GAUCHE(DROITE(SUBSTITUE(A1;"rdc";"RDC");NBCAR(A1)-TROUVE("RDC";SUBSTITUE(A1;"rdc";"RDC");1)+1);3);SIERREUR("Niv "&GAUCHE(SUPPRESPACE(SUBSTITUE(DROITE(A1;NBCAR(A1)-TROUVE("étage";A1;1)+5);"*";""));1);"")))
une autre approche parce qu'il y a plusieurs variables à traiter, les espaces, les étoiles, majuscule et minuscule etc
si ton tableau commence en A1 en B1 par exemple coller cette formule on verra après si elle peut être raccourcie
=SIERREUR(GAUCHE(DROITE(SUBSTITUE(A1;"niv";"Niv");NBCAR(A1)-TROUVE("Niv ";SUBSTITUE(A1;"niv";"Niv");1)+1);5);SIERREUR(GAUCHE(DROITE(SUBSTITUE(A1;"rdc";"RDC");NBCAR(A1)-TROUVE("RDC";SUBSTITUE(A1;"rdc";"RDC");1)+1);3);SIERREUR("Niv "&GAUCHE(SUPPRESPACE(SUBSTITUE(DROITE(A1;NBCAR(A1)-TROUVE("étage";A1;1)+5);"*";""));1);"")))
m.messaoud29
Messages postés
17
Date d'inscription
jeudi 19 octobre 2017
Statut
Membre
Dernière intervention
26 mars 2021
26 déc. 2017 à 22:46
26 déc. 2017 à 22:46
Apparemment il y a trop d'arguments et des signe "-" dans la fonction qui causent pro.
Merci pour votre aide
Merci pour votre aide
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié le 26 déc. 2017 à 17:43
Modifié le 26 déc. 2017 à 17:43
Re,
une autre approche avec NB.SI
on commence par traiter les RDC avec
=SI(NB.SI(A1;"*rdc*")>0;"RDC";"")
ensuite les niv avec
SI(NB.SI(A1;"*niv 1*")>0;"Niv 1";SI(NB.SI(A1;"*niv 2*")>0;"Niv 2";SI(NB.SI(A1;"*niv 3*")>0;"Niv 3";SI(NB.SI(A1;"*niv 4*")>0;"Niv 4";""))))
puis les étages avec
SI(NB.SI(A1;"*1er étage*")>0;"Niv 1";SI(NB.SI(A1;"*2è étage*")>0;"Niv 2";SI(NB.SI(A1;"*3è étage*")>0;"Niv 3";SI(NB.SI(A1;"*4è étage*")>0;"Niv 4";""))))
et pour finir on relance chaque série de conditionnelle avec un & ce qui donne
et si tous les cas n'ont pas été traités on peut relancer une série de conditionnelle
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
une autre approche avec NB.SI
on commence par traiter les RDC avec
=SI(NB.SI(A1;"*rdc*")>0;"RDC";"")
ensuite les niv avec
SI(NB.SI(A1;"*niv 1*")>0;"Niv 1";SI(NB.SI(A1;"*niv 2*")>0;"Niv 2";SI(NB.SI(A1;"*niv 3*")>0;"Niv 3";SI(NB.SI(A1;"*niv 4*")>0;"Niv 4";""))))
puis les étages avec
SI(NB.SI(A1;"*1er étage*")>0;"Niv 1";SI(NB.SI(A1;"*2è étage*")>0;"Niv 2";SI(NB.SI(A1;"*3è étage*")>0;"Niv 3";SI(NB.SI(A1;"*4è étage*")>0;"Niv 4";""))))
et pour finir on relance chaque série de conditionnelle avec un & ce qui donne
=SI(NB.SI(A1;"*rdc*")>0;"RDC";"")&SI(NB.SI(A1;"*niv 1*")>0;"Niv 1";SI(NB.SI(A1;"*niv 2*")>0;"Niv 2";SI(NB.SI(A1;"*niv 3*")>0;"Niv 3";SI(NB.SI(A1;"*niv 4*")>0;"Niv 4";""))))&SI(NB.SI(A1;"*1er étage*")>0;"Niv 1";SI(NB.SI(A1;"*2è étage*")>0;"Niv 2";SI(NB.SI(A1;"*3è étage*")>0;"Niv 3";SI(NB.SI(A1;"*4è étage*")>0;"Niv 4";""))))
et si tous les cas n'ont pas été traités on peut relancer une série de conditionnelle
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
m.messaoud29
Messages postés
17
Date d'inscription
jeudi 19 octobre 2017
Statut
Membre
Dernière intervention
26 mars 2021
26 déc. 2017 à 22:50
26 déc. 2017 à 22:50
Ah vous êtes génial merci beaucoup !!! C'est parfait!
Mazzaropi
Messages postés
1985
Date d'inscription
lundi 16 août 2010
Statut
Contributeur
Dernière intervention
24 mai 2023
70
Modifié le 26 déc. 2017 à 20:25
Modifié le 26 déc. 2017 à 20:25
m.messaoud29, Bonsoir.
Vous avez déjà reçu plusieurs options en réponse.
Aussi, je vais laisser ici ma modeste contribution à la solution de votre besoin.
La formule:
=MAJUSCULE(SIERREUR(STXT(A1;TROUVE("niv ";A1;1);5); SIERREUR(STXT(A1;TROUVE("RDC";A1;1);3);SIERREUR("NIV " & STXT(A1;RECHERCHE(9,99E+21;TROUVE({"er é";"è é"};A1))-1;1);""))))
https://www.cjoint.com/c/GLAtgkceglJ
S'il vous plaît dites-nous si cela a fonctionné comme vous en aviez besoin.
J'espère avoir aidé.
--
Belo Horizonte, Brasil.
Marcílio Lobão
Vous avez déjà reçu plusieurs options en réponse.
Aussi, je vais laisser ici ma modeste contribution à la solution de votre besoin.
La formule:
=MAJUSCULE(SIERREUR(STXT(A1;TROUVE("niv ";A1;1);5); SIERREUR(STXT(A1;TROUVE("RDC";A1;1);3);SIERREUR("NIV " & STXT(A1;RECHERCHE(9,99E+21;TROUVE({"er é";"è é"};A1))-1;1);""))))
https://www.cjoint.com/c/GLAtgkceglJ
S'il vous plaît dites-nous si cela a fonctionné comme vous en aviez besoin.
J'espère avoir aidé.
--
Belo Horizonte, Brasil.
Marcílio Lobão
m.messaoud29
Messages postés
17
Date d'inscription
jeudi 19 octobre 2017
Statut
Membre
Dernière intervention
26 mars 2021
26 déc. 2017 à 22:53
26 déc. 2017 à 22:53
Ah merci infiniment pour le temps consacré, votre programme fonctionne à merveille ! ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mazzaropi
Messages postés
1985
Date d'inscription
lundi 16 août 2010
Statut
Contributeur
Dernière intervention
24 mai 2023
70
26 déc. 2017 à 23:44
26 déc. 2017 à 23:44
m.messaoud29,
Content de t'avoir aidé.
Bonne semaine.
--
Belo Horizonte, Brasil.
Marcílio Lobão
Content de t'avoir aidé.
Bonne semaine.
--
Belo Horizonte, Brasil.
Marcílio Lobão
26 déc. 2017 à 22:46