Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Extraite lettre de cellule - RESOLU

gigiwin

XLDnaute Occasionnel
Bonjour,

Dans mon tableau j'ai en colonne G une liste de NOM Prénom.
Il me faut extraire les 3 premières lettres du PRÉNOM et du NOM, et mettre le tout en majuscule.
Par exemple DUBOIS Marie--->MARDUB.

J'ai bien trouvé la formule qui me fais cela:
=(MAJUSCULE(STXT(G2;TROUVE(" ";G2)+1;3))&(GAUCHE(G2;3)))
mais si j'ai une cellule avec NOM NOM Prénom; cela ne fonctionne pas. Et là, je sèche...
Que dois-je modifier au cas ou il y a 2 espace dans la cellule, mais que ça fonctionne aussi si il n'y en a qu'un?

Merci de votre aide.
 

Pièces jointes

  • 6 lettres.xlsx
    10.6 KB · Affichages: 23

Dugenou

XLDnaute Barbatruc
Re,
On pourrait faire un calcul qui donne l'emplacement du dernier espace, mais vous allez certainement avoir des cas avec deux prénoms séparés par un espace..
Je suggère d'avoir une colonne avec l'emplacement de l'espace que vous corrigez à la main pour les cas particuliers.
Cordialement
 

gigiwin

XLDnaute Occasionnel
Merci de t'intéressé à mon problème.
j'aurais du spécifier dans ma demande que je ne peux pas ajouter de colonne.
je n'ai accès qu'à une seule colonne; celle où je dois mettre la formule recherchée.
 

Victor21

XLDnaute Barbatruc
Bonjour à tous.

Essayez en AJ1 :
VB:
=SI(NBCAR(G3)-NBCAR(SUBSTITUE(G3;" ";""))=1;MAJUSCULE(STXT(G3;TROUVE(" ";G3)+1;3))&(GAUCHE(G3;3));
SI(NBCAR(G3)-NBCAR(SUBSTITUE(G3;" ";""))=2;MAJUSCULE(STXT(G3;TROUVE(" ";G3)+TROUVE(" ";G3);3)&(GAUCHE(G3;3)));"Traitement manuel"))
Fonctionne pour concaténer les trois premières lettres du premier terme, et les trois premières lettres du deuxième terme s'il y en a deux, (JULLAM pour Lambert Julien )ou du troisième terme s'il y en a trois (MARFOR pour Fortin Piret Marie).

Pour Charles Henri De La Rochefoucault, il faudra trouver un magicien
 

laurent950

XLDnaute Barbatruc
Bonjour,
Voici la Formule :
Ecrire en G2 : DUBOIS Marie / Prénom Nom / --->MARDUB
Ou
Ecrire en G2 : Lambert DUBOIS Marie / Prénom Nom Nom / ----> MARLAMDUB

Formule en G2 à recopier vers le bas ci dessous.
* Sans gestion des espaces entre les noms = pour
VB:
(DUBOIS Marie) ou (Lambert DUBOIS Marie)
* Avec gestion des espaces entre les noms = pour
VB:
(DUBOIS     Marie) ou (Lambert    DUBOIS                   Marie)

Formule : si il y a des 1 seul espace entre les noms et le prénom.
VB:
En G2 pour Test : (AA1rrrrrrr BB2rrrrrrrrrr CC3rrrrrr)  ------>>>>   CC3AA1BB2
Formule a recopier en H2 : =SI(SOMMEPROD((NBCAR(G2)-NBCAR(SUBSTITUE(G2;" ";""))))=1;MAJUSCULE(STXT(DROITE(G2;NBCAR(G2)-TROUVE(" ";G2;1));1;3)&STXT(GAUCHE(G2;TROUVE(" ";G2;1));1;3));MAJUSCULE(STXT(DROITE(G2;NBCAR(G2)-TROUVE(" ";G2;TROUVE(" ";G2;1)+1));1;3)&STXT(GAUCHE(G2;TROUVE(" ";G2;1));1;3)&GAUCHE(SUPPRESPACE(STXT(G2;TROUVE(" ";G2;1);TROUVE(" ";G2;TROUVE(" ";G2;1)+1)-TROUVE(" ";G2;1)));3)))

Formule Bonus : si il y a des beaucoup d'espaces entre les nom et prénom soit 2 ou 3 ou 4 ou 5 etc.
VB:
En G2 pour Test : (AA1rrrrrrr         BB2rrrrrrrrrr           CC3rrrrrr)  ------>>>>   CC3AA1BB2
ormule a recopier en H2 : =SI(SOMMEPROD((NBCAR(SUPPRESPACE(G2))-NBCAR(SUBSTITUE(SUPPRESPACE(G2);" ";""))))=1;MAJUSCULE(STXT(DROITE(SUPPRESPACE(G2);NBCAR(SUPPRESPACE(G2))-TROUVE(" ";SUPPRESPACE(G2);1));1;3)&STXT(GAUCHE(SUPPRESPACE(G2);TROUVE(" ";SUPPRESPACE(G2);1));1;3));MAJUSCULE(STXT(DROITE(SUPPRESPACE(G2);NBCAR(SUPPRESPACE(G2))-TROUVE(" ";SUPPRESPACE(G2);TROUVE(" ";SUPPRESPACE(G2);1)+1));1;3)&STXT(GAUCHE(SUPPRESPACE(G2);TROUVE(" ";SUPPRESPACE(G2);1));1;3)&GAUCHE(SUPPRESPACE(STXT(SUPPRESPACE(G2);TROUVE(" ";SUPPRESPACE(G2);1);TROUVE(" ";SUPPRESPACE(G2);TROUVE(" ";SUPPRESPACE(G2);1)+1)-TROUVE(" ";SUPPRESPACE(G2);1)));3)))
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,

Pour le fun, une formule matricielle.

Deux hypothèses :
  1. les noms sont entièrement en majuscule
  2. les prénoms sont entièrement en minuscule sauf la première lettre qui est en majuscule

Formule matricielle en H2 à tirer vers le bas :
VB:
=MAJUSCULE(GAUCHE(GAUCHE(G2;CHERCHE(" ";G2))&"   ";3) & STXT(G2&"   ";MIN(SI(EXACT(MINUSCULE(STXT(SUBSTITUE(G2&"aaa";" ";"A");LIGNE($2:$99);3));STXT(SUBSTITUE(G2&"aaa";" ";"A");LIGNE($2:$99);3));LIGNE($2:$99)-1;""));3))

 

Pièces jointes

  • gigiwin- 6 lettres- v1.xlsx
    14.3 KB · Affichages: 6
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour le forum,

Moi j'attends qu'un XLDnaute courageux me fournisse la liste des 33000 prénoms recensés en France.

Cela devrait pouvoir se trouver sur le web.

Et cela sera utile pour choisir les prénoms de mes futurs arrières-petits-enfants qui ne vont pas tarder à arriver.

Bon week-end.
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
797
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…