XL 2019 Trouver gauche, milieu, droite

hermann

XLDnaute Junior
Supporter XLD
Bonjour Mesdames, Messieurs

J'ai trouver la formule suivant dans votre forum: elle est parfait. Mais il y a d'autre séparation "point" dans les cellule a trouver.

Merci pour votre aide

Hermann

SI(ESTERREUR(GAUCHE(B3;TROUVE(",";B3)-1));GAUCHE(B3;TROUVE(" ";B3)-1);GAUCHE(B3;TROUVE(",";B3)-1))

 

Pièces jointes

  • left-mid.xlsx
    16.8 KB · Affichages: 11

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir tout le monde
J'ai une solution sans VBA, mais avec des noms définis (pour me passer des formules matricielles).
L'idée étant de créer une matrice contenant les Mots séparés par les points, on n'est pas limité par le nombre de points.
CommentairesNoms définisDéfinition
La plage contenant les chaines à découper :Entrées=Feuil1!$C$3:$C$9
Chaines correspondant à la ligne courante :Entrée=Entrées Feuil1!16:16
Comptage du nombre de mots dans la chaîne courante :NbMots=NBCAR(Entrées Feuil1!20:20)-NBCAR(SUBSTITUE(Entrées Feuil1!20:20;".";""))+1
Hachage de la chaîne en plusieurs lignes; le mot à extraire étant borné par le caractère "¯"MarquerMots=SUBSTITUE(SUBSTITUE("."&Entrée;".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)));".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)))
ne conserve dans chaque ligne que le mot borné par les "¯"ListeMots=GAUCHE(STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée));TROUVE("¯";STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée))&"¯")-1)


Voir le fichier joint

Amicalement
Alain
 

Pièces jointes

  • left-mid AtTheOne.xlsx
    18.1 KB · Affichages: 3

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous,
Bonjour @JHA
Le plus simple est de se servir de données/convertir/délimité
mettre le "." en séparation
Effectivement, si les données ne s'enrichissent pas au fur et à mesure de la vie du fichier, c'est le plus simple !
et cetera en cas s'il y :
Ma solution supposait qu'il fallait une formule et qu'il ne fallait pas se limiter à 2 points dans les chaînes à traiter.
@hermann nous en dira peut-être plus.
Amicalement
Alain
 

hermann

XLDnaute Junior
Supporter XLD
Bonsoir tout le monde
J'ai une solution sans VBA, mais avec des noms définis (pour me passer des formules matricielles).
L'idée étant de créer une matrice contenant les Mots séparés par les points, on n'est pas limité par le nombre de points.
CommentairesNoms définisDéfinition
La plage contenant les chaines à découper :Entrées=Feuil1!$C$3:$C$9
Chaines correspondant à la ligne courante :Entrée=Entrées Feuil1!16:16
Comptage du nombre de mots dans la chaîne courante :NbMots=NBCAR(Entrées Feuil1!20:20)-NBCAR(SUBSTITUE(Entrées Feuil1!20:20;".";""))+1
Hachage de la chaîne en plusieurs lignes; le mot à extraire étant borné par le caractère "¯"MarquerMots=SUBSTITUE(SUBSTITUE("."&Entrée;".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)));".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)))
ne conserve dans chaque ligne que le mot borné par les "¯"ListeMots=GAUCHE(STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée));TROUVE("¯";STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée))&"¯")-1)


Voir le fichier joint

Amicalement
Alain

Bonsoir Monsieur

Votre page Excel est très agréable a lire, merci.

Les thème ne sont pas sépare dans les colonne.

Si se n'est pas possible. Se pas grave. J'ai prend bien votre proposition ! :)
Hermann

Nota bene:
Une penser a eux (je suis a 50% Cosaque)
Bonsoir tout le monde
J'ai une solution sans VBA, mais avec des noms définis (pour me passer des formules matricielles).
L'idée étant de créer une matrice contenant les Mots séparés par les points, on n'est pas limité par le nombre de points.
CommentairesNoms définisDéfinition
La plage contenant les chaines à découper :Entrées=Feuil1!$C$3:$C$9
Chaines correspondant à la ligne courante :Entrée=Entrées Feuil1!16:16
Comptage du nombre de mots dans la chaîne courante :NbMots=NBCAR(Entrées Feuil1!20:20)-NBCAR(SUBSTITUE(Entrées Feuil1!20:20;".";""))+1
Hachage de la chaîne en plusieurs lignes; le mot à extraire étant borné par le caractère "¯"MarquerMots=SUBSTITUE(SUBSTITUE("."&Entrée;".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)));".";"¯";LIGNE(DECALER(Feuil1!$A$1;0;0;NbMots;1)))
ne conserve dans chaque ligne que le mot borné par les "¯"ListeMots=GAUCHE(STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée));TROUVE("¯";STXT(MarquerMots;TROUVE("¯";MarquerMots)+1;NBCAR(Entrée))&"¯")-1)


Voir le fichier joint

Amicalement
Alain
Bonsoir Monsieur

Merci, je suis impressionner par votre présentation

Bonne soirée
Hermann
 

hermann

XLDnaute Junior
Supporter XLD
Bonsoir à toutes & à tous
Bonsoir @hermann

Qu'entends-tu par là ?
Peux-tu dans ton fichier exemple mettre le résultat attendu pour chaque ligne (il y en a que 7 ) pour que l'on sache la forme à respecter dans nos propositions ?

Amicalement
Alain
Essai découpage colonne "C"
3610-mai-1961oui
16715 avril 2018oui
381961non
1651963oui
35840non
3854xlnon
3854xletnon
Qui m'intrigue, est que le "et" ne pas séparée dans une autre colonne ....

Merci de me proposer une répons si tardivement :)

Mais, demain il y a auras un autre jour

Hermann
 

job75

XLDnaute Barbatruc
Bonjour le forum,

Pour généraliser ce que j'ai fait au post #11 voyez ce fichier (2) :

- sélectionner E3 et définir le nom p_1 :
Code:
=TROUVE(CAR(1);SUBSTITUE("."&Feuil1!$C3&REPT(".";Feuil1!E$2);".";CAR(1);Feuil1!E$2))
- sélectionner E3 et définir le nom p_2 :
Code:
=TROUVE(CAR(1);SUBSTITUE(Feuil1!$C3&REPT(".";Feuil1!E$2);".";CAR(1);Feuil1!E$2))
- formule unique en E3 à tirer à droite et vers le bas :
Code:
=STXT($C3&REPT(".";E$2);p_1;p_2-p_1)
Edit : j'ai eu du mal, on s'emmêle facilement les crayons...

A+
 

Pièces jointes

  • left-mid(2).xlsx
    18 KB · Affichages: 1
Dernière édition:

Discussions similaires

Réponses
4
Affichages
167
Réponses
10
Affichages
463

Statistiques des forums

Discussions
315 106
Messages
2 116 269
Membres
112 706
dernier inscrit
Pierre_98