Prélever des bouts de texte

Bonjour,

Au sein du classeur suivant, j'effectue à l'actualisation de mes données Query, un remplacement de tous les "." par des virgules, afin d'effectuer des calculs grâce à ses données.

Je souhaiterais dans la colonne NOMS faire apparaitre la première lettre de chaque prénom, suivie d'un point, suivi du nom de famille entier.

Existe t-il une combinaison de formules me permettant de prélever cela pour chaque joueur, et celle-ci s'adaptant automatiquement peu importe la taille du nom ?

Merci à vous.

17test-noms.xlsx (20.71 Ko)

Bonjour,

C'est une chose que l'on peut réaliser sans gros problème en VBA.

Toutefois une question, dans la colonne NOMS, les noms qui apparaissent n'ont aucun rapport avec le nom des players (colonne B), est ce normal ?

Cordialement

C’est normal oui, c’est moi qui les ai saisi mais tu peux les supprimer si tu le souhaites

Peux tu me montrer la fonction en VBA s’il te plaît ?

Voici ce que cela donne avec un petit bout de code VBA
Il te suffit de cliquer sur le bouton OK pour obtenir ce que tu veux

14test-noms-1.xlsm (29.73 Ko)

Bonjour à tous !

Une proposition "formule" en X2 :

=LET(n;B2;GAUCHE(n)&"."&DROITE(n;NBCAR(n)-TROUVE(" ";n)))

A étirer vers le bas.

Bonjour à tous,

Une autre proposition :

=GAUCHE(B2;1)&"."&DROITE(B2;NBCAR(B2)-CHERCHE(" ";B2;1))

Bonjour à tous,

En continuant ton Power query

12test-noms.xlsx (28.71 Ko)

mais il faut, comme a chaque fois, se fixer une syntaxe pour déterminer quel est le nom , quel est le prenom.

ex Essome Miyem Nwal

Donne nous la bonne raison de ton résultat.

Crdlmt

Les VBA ne me sont pas familiers, j'ai donc du mal à comprendre votre procédé je vous avoue...

DjiDji, pour l'exemple que tu viens de citer, Essome est le prénom

Bonjour à tous,

Bien vu DjiDji.

Une petite contribution, et j'en profite pour mon savoir : Quelqu'un pour rendre variable le 14 à la fin du code ? Ce qui revient à compter le nombre de ligne au dessus de la 1ère valeur null. J'ai tenté en vain avec Table.PositionOf => me renvoi -1 !

let
    Source = Excel.CurrentWorkbook(){[Name="Stats!Stats_denain_1"]}[Content],
    SelecCol = Table.SelectColumns(Source,{"Column2"}),
    EnTete = Table.PromoteHeaders(SelecCol, [PromoteAllScalars=true]),
    Traitement = Table.AddColumn(EnTete, "Résultat", each let 
A = Text.Start([Player], 1),
B = Text.AfterDelimiter([Player], " ")

in A &"."& B) [[Résultat]],
    Suppr = Table.RemoveLastN(Traitement,Table.RowCount(Traitement)-List.PositionOf(Traitement[Résultat], null))
in
    Suppr
6test-noms-pq.xlsx (27.84 Ko)

Autre problématique, si je souhaites remplacer chaque "." par une virgule afin d'effectuer correctement mes calculs, est-ce possible de dire à Excel :

"Change moi tous les "." en virgule sauf la colonne de noms" ?

RE,

Oui, tu sélectionnes ta plage comme ceci :

image

CTRL + H => Tu recherches un . que tu veux remplacer par , et tu cliques sur Remplacer tout

image

Tu obtiens

image

Bonjour à tous de nouveau !

...... Quelqu'un pour rendre variable le 14 à la fin du code ? Ce qui revient à compter le nombre de ligne au dessus de la 1ère valeur null. J'ai tenté en vain avec Table.PositionOf => me renvoi -1 !

Une proposition ?

= Table.FirstN(Traitement, each [Résultat]<>null)

Etape insérée après "Traitement".

Une proposition pour trouver le n° de la ligne où se trouve le 1er null ? (désolé j'y tiens )

Bonjour à tous de nouveau !

Comme ceci ?

= List.PositionOf(Traitement[Résultat], null)

Bonjour à tous

Pour remplacer les points par des virgules dans des nombres avec PQ, il suffit de les typer en utilisant les paramètres régionaux : pas de cherche et remplace ou autre...

Sélectionner les colonnes, clic droit, Modifier le type, Utilisation des paramètres régionaux

image

RE,

@Chris : Ok, je ne pense pas que notre ami veuille utiliser PowerQuery pour transformer ses . en ,

@JFL : C'est tout à fait ça. Merci, j'avais pourtant testé. Avec des { } étant donné que la fonction attend une liste en 1er argument

Re

C'est ce que j'avais cru comprendre

Au sein du classeur suivant, j'effectue à l'actualisation de mes données Query, un remplacement de tous les "." par des virgules, afin d'effectuer des calculs grâce à ses données.

Mais ne trouvant pas de requête je ne savais pas trop...

On va dire que c'est confus...

Apparemment DjiDji à eu un fichier avec un bout de requête... Mais je ne sais pas où il l'a trouvé !

non, je lui ai dit de continuer son Power query, vu qu'il annonçait ; "Au sein du classeur suivant, j'effectue à l'actualisation de mes données Query" comme l'avait remarqué Chris78

Rechercher des sujets similaires à "prelever bouts texte"