[Power Query] Modifier 2 derniers digits

Bonjour à tous,

Je cherche une formule afin de créer une nouvelle colonne conditionnelle dans Power Query

avec les paramètres suivants:

si ma colonne [Référence] commence par "AZVH" ou "KRIT", alors je souhaite modifier les 2 dernières valeurs de la cellule en "00". (AZVH9184 devient AZVH9100)

Je joins un jeu de données avec l'exemple illustré et le résultat attendu.

Merci !

62lastdigits.xlsx (12.69 Ko)

Bonjour,

Si ton texte contient toujours 8 caractères (4 lettres + 4 chiffres), une solution :

let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    Tronq = Table.AddColumn(Source, "Personnalisé", each if Text.StartsWith([Référence], "AZVH") or Text.StartsWith([Référence], "KRIT") then Text.Start([Référence],6)&"00" else [Référence])
in
    Tronq

Bonne journée

Hello,

Une proposition

@+

132lastdigits.xlsx (19.62 Ko)

Edit : Hello cousinhub c'était du post simultané

Re-,

Hello, Baroute,

Oui, mais ta tienne est plus adaptable (non contraint avec les 8 caractères)

Bonne journée

Bonjour à tous,

Merci pour ces retours rapides et efficaces !!

@cousinhub En effet il se peut que ma colonne [Référence] contienne parfois 9 caractères, c'est assez rare mais ça arrive.

Je pense donc que la solution de @BAROUTE78 sera parfaitement adaptable, sans la contrainte de nombre de caractères.

Je marque la proposition comme solution à ce post.

Merci à tous les deux, bonne journée !!

Bonjour à tous,

J'enrichis mon besoin avec une demande complémentaire étant donné que ma colonne [référence] peut contenir des références bien + longues que celles présentes dans mon jeu de données initial

--> J'aimerai modifier le 9ème et 10ème caractère de ma colonne [référence] en "00", toujours suivant les mêmes conditions (uniquement les références qui commencent par "AZVH" ou "KRIT").

Ce sera toujours ce 9ème et 10ème caractère qui seront à remplacer par "00", peu importe la longueur de ma référence

J'ai flagué en rouge le résultat souhaité dans l'exemple joint.

Merci !

Hello,

Une proposition

@+

Bonsoir à tous !

Une autre approche !

Bonjour à tous,

Merci pour ces retours. Je rencontre un soucis: si j'ai bien compris vos différents codes proposés, la logique utilisée se base sur l'espace présent entre mon 10ème caractère et le reste de la référence: on part de cet espace pour faire -2 caractères et écrire "00" à la place.

Cela fonctionne bien dans le jeu de données que j'ai joins, mais je rencontre parfois des références sans ce fameux espace après mon 10ème caractère (voir le nouveau jeu de données). Ma fonction ne fonctionne donc pas dans ce cas de figure

Une idée afin de contourner ce problème ? Je souhaite remplacer mon 9ème et 10ème caractère par "00" peu importe la longueur de ma référence, son format (espace présent ou non) etc... Une fonction qui s'adapte à tous les cas de figure.

Merci !

Hello,

D'où la nécessité de bien préciser le besoin au départ

@+

Edit : Hello cousinhub =D

Bonjour,

Si tu confirmes que c'est toujours les digits 9 et 10 qu'il faut adapter, alors ceci ferait l'affaire...

let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    Tronq = Table.AddColumn(Source, "New", each if Text.StartsWith([Référence], "AZVH") or Text.StartsWith([Référence], "KRIT") then Text.ReplaceRange([Référence],8,2,"00") else [Référence])
in
    Tronq

S'il y a encore des trucs scabreux , alors ce qu'il faudrait, c'est que tu mettes un fichier exemple englobant tous les cas de figure (du moins ceux que tu aurais pu répertorier)..

Bonne apm

Re-,

Hello Baroute

Pas tout à fait le même process...

Mais (et c'est l'essentiel), le même résult'

@+

Bonjour,

Merci pour ces retours, à vrai dire je n'avais pas connaissance dès le début de mon post de tous les formats de référence possible, je m'en excuse

Le problème est parfaitement solutionné, je marque le post en résolu

@cousinhub @BAROUTE78 est-il possible d'expliquer rapidement votre code svp? Je n'ai pas la certitude d'avoir bien cerné la logique derrière

Merci à vous !

Re-,

Pour ne pas dire trop de "bêtises", je vais plutôt te conseiller de consulter la doc officielle, notamment concernant le Texte.ReplaceRange que j'utilise

https://learn.microsoft.com/fr-fr/powerquery-m/text-replacerange

Et tout plein d'autres choses à découvrir pour le langage M

Bonne lecture (et doliprane(s)?)

Bonjour,

Merci pour cette doc très complète

Bonne journée !

Rechercher des sujets similaires à "power query modifier derniers digits"