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

Recherche des initiales

  • Initiateur de la discussion Initiateur de la discussion BERNARD M
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

BERNARD M

Guest
Bonsoir le forum

Un petit probleme d'initiale qui doit etre un jeu d'enfant pour les spécialistes que vous êtes.

Suite aux infos venant d'un usf, j'ai une donnée 'Nom et Prénom' que je dois transformer en initiales du type Zinédine ZIDANE en ZZ ou Jean Pierre PAPIN en JPP.

Merci d'avance et longue vie à cet EXCELlent lieu d'apprentissage.
 
Bonsoir Bernard

Je ne crois pas que cela soit un 'jeu d'enfant' car il y a des ambiguités qu'Excel aura du mal à résoudre :
Les Nom de Famille en 2 ou 3 parties et les prénoms composés séparés par un espace
et cela risque de se produire en même temps...

Jean de La Fontaine
Jean Baptiste Le Bon
@+GD
 
Salut Bernard, Gérard et José,
salut le forum,

Quelques précisions :

JPP vient bien de Jean Pierre Papin
Si c'était écrit Jean-Pierre Papin, il faudrait renvoyer JP.
De même Manneke Pis de Bruxelles devrait renvoyer MPdP (il y a moyen, par la fonction MAJUSCULE, de renvoyer MPDB, le tout en majuscules, peut-être plus facile pour un tri ultérieur).

Sous ces hypothèses, la formule suivante, limitée actuellement à 4 lettres, mais rien n'empêche de l'étendre, devrait renvoyer les 4 premières lettres des 4 premiers mots d'une chaîne de caratères en A1 :

=SI(A1='';'';GAUCHE(A1)&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>0;STXT(A1;CHERCHE(' ';A1)+1;1);'')&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>1;STXT(A1;CHERCHE('µ';SUBSTITUE(A1;' ';'µ';2))+1;1);'')&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>2;STXT(A1;CHERCHE('µ';SUBSTITUE(A1;' ';'µ';3))+1;1);''))

Mais il y a plus simple.
Menu Données / Convertir pour dissocier la chaîne de caractères sur base des espaces.
Puis la formule :
=GAUCHE(A1)&GAUCHE(B1)&GAUCHE(C1)&GAUCHE(D1)

Â+
 
Bonjour tout le monde,

Je réactive ce message dont je viens de me servir, d'abord pour remercier André pour sa formule dont je me suis servi, mais aussi pour prolonger ce fil par la formule que j'ai finalement utilisé.

J'avais besoin que toutes mes initiales soient en majuscule, et pouvoir virer l'espace qui se trouve assez souvent devant le nom de la personne dans les bases que je récupère.

=SUPPRESPACE(MAJUSCULE(SI(A1='';'';GAUCHE(A1)&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>0;STXT(A1;CHERCHE(' ';A1)+1;1);'')&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>1;STXT(A1;CHERCHE('µ';SUBSTITUE(A1;' ';'µ';2))+1;1);'')&SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1;' ';''))>2;STXT(A1;CHERCHE('µ';SUBSTITUE(A1;' ';'µ';3))+1;1);''))))

Toutefois j'ai encore 2 soucis :
1) Je n'arrive pas à faire que la formule comprenne les tirets comme des espaces de façon à ce que 'Jean-Paul Belmondo' donne 'JPB' et non pas 'JB'.
2) Je n'ai pas compris à quoi servent les 'µ'

Merci de votre aide.

Cordialement.
 
Salut,

Les tirets
tu remplaces dans la formule tous les A1 par SUBSTITUE(A1;'-';' ')

Le µ
Il remplace, dans le calcul uniquement, un espace bien précis pour en calculer la position dans la chaîne de caractères.
Ainsi : CHERCHE('µ';SUBSTITUE(A1;' ';'µ');2)
renverra la position du 2ième espace.
Si tu remplaces 2 par 3 elle te renverra la postion du 3ième espace.

Â+

EDITION :
Oups, le smiley !

Message édité par: andré, à: 30/05/2006 12:51
 
Re,

Merci André ça fonctionne super et décidement on en fini jamais de découvrir xl.
J'essayé effectivement de passer par SUBSTITUE(A1;'-';' ') mais je voulais le mettre en 1er dans la formule puis trouver une fonction qui disait de faire ça avant le reste.

Du coup ça me donne une formule super longue :
=(SUPPRESPACE(MAJUSCULE(SI(SUBSTITUE((A1);'-';' ')='';'';GAUCHE(SUBSTITUE((A1);'-';' '))&SI(NBCAR(SUBSTITUE((A1);'-';' '))-NBCAR(SUBSTITUE(SUBSTITUE((A1);'-';' ');' ';''))>0;STXT(SUBSTITUE((A1);'-';' ');CHERCHE(' ';SUBSTITUE((A1);'-';' '))+1;1);'')&SI(NBCAR(SUBSTITUE((A1);'-';' '))-NBCAR(SUBSTITUE(SUBSTITUE((A1);'-';' ');' ';''))>1;STXT(SUBSTITUE((A1);'-';' ');CHERCHE('µ';SUBSTITUE(SUBSTITUE((A1);'-';' ');' ';'µ';2))+1;1);'')&SI(NBCAR(SUBSTITUE((A1);'-';' '))-NBCAR(SUBSTITUE(SUBSTITUE((A1);'-';' ');' ';''))>2;STXT(SUBSTITUE((A1);'-';' ');CHERCHE('µ';SUBSTITUE(SUBSTITUE((A1);'-';' ');' ';'µ';3))+1;1);'')))))

J'aurais pas des SUBSTITUE en trop par hasard ?

Cordialement.
 
Resalut,

Cela fonctionne, je suis fort aise (lol), car je ne l'avais pas testée.

Je ne crois pas qu'il y ait des SUBSTITUE en trop, car ce nouvel espace influence aussi la position des autres espaces (le µ).

Mais il y a moyen de nommer (menu Insertion / Nom / Définir) des parties de formules, ce qui diminuera fortement la longueur de la formule actuelle.

Â+
 
Merci André, mais si je me mets à nommer des bouts de formules, je crois bien que je serais obligé d'utiliser d'autres cellules, et franchement j'en est déjà assez dans ma base pleine de formules.
Je suis obligé de garder un recalcul automatique et mon excel rame déjà pas mal.

Merci à toi en tous cas.

Bon après-midi.

Batiscaf.
 
Re,

Mais non tu n'as pas besoin d'autres cellules.
De plus ton fichier sera allégé et les calculs seront plus rapides.

C'est bien parce que tu aimes les pains au chocolat (moi aussi) que je te fais un petit exemple.

A tantôt.

Â+
 
Re,

Et voilà.

J'ai vu que ton SUPPRESPACE était mal placé.
Je l'ai remis au bon endroit.
Tu supprimais les espaces du résultat et non de la chaîne de caractères avant traitement.

Si tu comprends le principe, tu peux encore raccourcir plus, ou bien nommer la formule actuelle, par exemple 'initiales' et dès que tu taperas ce nom dans une cellule, tu auras les initiales du nom situé dans la colonne A sur la même ligne.

Si ça ne va pas, fais signe.
Â+ [file name=Initiales.zip size=2114]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Initiales.zip[/file]
 
Re (tard),

Oui merci André j'ai bien compris et retenu le principe de création de noms y compris pour nommer une action et pas seulement une zone.

Le seul bémol que je trouve à cette dernière version est que les noms ne sont définis que dans le classeur d'origine et je ne pourrai pas les récupérer sur un autre classeur une autre fois. Cela dit je vais essayer de les définir dans PERSO.XLS puisqu'il s'ouvre au démarrage.
Je pense aussi que j'aurai le même handicap si je veux filer cette formule à un collègue.

Enfin bon, on peut pas toujours tout avoir même sur xl. Ce sera le choix à faire entre le gain de place et la 'diffusabilité'.

Encore merci.

Bonne nuit ou journée selon quand tu lis ce message.

Cordialement.

ps. j'aime aussi les chaussons aux pommes, tartes aux framboises, pains aux raisins, éclairs au chocolat...mais si je liste tout ma signature va faire 1 page.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…