Déconcaténer une phrase de longueur variable

Résolu/Fermé
tiralia Messages postés 1575 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 9 mars 2016 - 8 mars 2016 à 23:10
tiralia Messages postés 1575 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 9 mars 2016 - 9 mars 2016 à 21:03
Bonjour,

J'ai trouvé une formule pour dé-concaténer mais elle est un peu complexe, et après de nombreux essais infructueux, je me tourne vers vous...

La formule fonctionne bien, elle sépare une phrase de taille variable et place chaque mot dans des cellules séparées en fonction des espaces dans la phrase.

En A3 la phrase à découper
en B3, C3, D3, E3, F3 ........ la formule suivante:
=SI(COLONNE()=2;SI($A3="";"";SI(NBCAR($A3)-NBCAR(SUBSTITUE($A3;" ";""))=0;$A3;GAUCHE($A3;TROUVE(" ";$A3;2))));SI(NBCAR($A3)-NBCAR(SUBSTITUE($A3;" ";""))<COLONNE()-2;"";STXT($A3;TROUVE("µ";SUBSTITUE($A3&" ";" ";"µ";COLONNE()-2);1)+1;TROUVE("µ";SUBSTITUE($A3&" ";" ";"µ";COLONNE()-1);1)-TROUVE("µ";SUBSTITUE($A3;" ";"µ";COLONNE()-2);1)-1)))

Si en A3 j'ai "bonjour à tous de Bretagne"
je me retrouve bien en:
B3:bonjour
C3:à
D3:tous
E3:de
F3:Bretagne

Je souhaite modifier la formule pour qu'elle sépare les mot non pas à chaque espace mais à chaque _

concrètement, si j'ai en A3 "bonjour_à_tous_de_Bretagne"
j'aimerai me retrouver avec les même résultat que précédemment, à savoir:
B3:bonjour
C3:à
D3:tous
E3:de
F3:Bretagne

Quelqu'un s'y connaissant mieux que moi arriverait à modifier cette formule?

Merci!
A voir également:

5 réponses

tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
9 mars 2016 à 19:04
Bonjour,
C'est la formule de départ qu'il faut corriger avant de remplacer " " par "_".
=SI(COLONNE()=2;SI($A3="";"";SI(NBCAR($A3)-NBCAR(SUBSTITUE($A3;" ";""))=0;$A3;GAUCHE($A3;TROUVE(" ";$A3;2)-1)));SI(NBCAR($A3)-NBCAR(SUBSTITUE($A3;" ";""))<COLONNE()-2;"";STXT($A3;TROUVE("µ";SUBSTITUE($A3&" ";" ";"µ";COLONNE()-2);1)+1;TROUVE("µ";SUBSTITUE($A3&" ";" ";"µ";COLONNE()-1);1)-TROUVE("µ";SUBSTITUE($A3;" ";"µ";COLONNE()-2);1)-1)))
1