Power Query - Transformation - Lignes de données scindées en 2

Bonjour,

Au cours de chargements de fichiers texte dans une requête Power Query, il arrive que certaines lignes ne soient pas standardisées, et alors elles se retrouvent scindées sur 2 lignes dans la requête.

par exemple, ci-dessous le libellé "conduite de projet informatique" a été coupé en deux, et a décalé les champs de données sur une 2ème ligne inutile.

test anomalie

Je cherche une possibilité pour corriger ces anomalies, et transformer ces doubles lignes en une seule.

Je ne trouve pas la fonctionnalité dans les menus de transformation. Existe-t-il une astuce ?

Merci d'avance pour votre aide,

Bonjour

On ne peux travailler sur une image... Joins un fichier représentatif

Bonjour,

Merci pour ce message.

Je joins un petit fichier échantillon qui illustre mon problème.

Il y a des lignes qui font un saut de ligne, suite à une sorte de "retour chariot" intempestif dans le fichier texte d'origine (le fichier joint ne comporte qu'une seule ligne en anomalie, pour exemple).

Je pense que Power Query permet de "nettoyer" ses sauts de lignes afin de remettre les données dans la bonne structure des colonnes, mais je n'ai pas trouvé la fonctionnalité.

Un grand merci pour votre aide.

15exemple.xlsx (17.55 Ko)
19exemple.txt (386.00 Octets)

Hello,

Une proposition

let
    Source = Csv.Document(File.Contents("C:\Users\toto\Downloads\exemple.txt"),[Delimiter="    ", Columns=14, Encoding=1252, QuoteStyle=QuoteStyle.None]),

    GroupBy = Table.Group(Source, {"Column2"}, {{"tbl", each _}},0,(s,c)=> Number.From(c[Column2]<>"")),

    Filter = Table.SelectRows(GroupBy, each ([Column2] <> "")),

    TransformDecalage = Table.TransformColumns(Filter, {"tbl" , each Table.FromRows(List.Transform(Table.ToRows(_), (x)=> if x{1} = "" then {"","","",""} & List.RemoveLastN(x,4) else x))}),

    AddRecords = Table.AddColumn(TransformDecalage, "Records", each [

    Column5 = Text.Combine([tbl][Column5]),
    Column10 = Text.Combine([tbl][Column10]),
    Column14 = Text.Combine([tbl][Column14])
]),

    ExpandRecords = Table.ExpandRecordColumn(AddRecords, "Records", {"Column5", "Column10", "Column14"}, {"Column5", "Column10", "Column14"}),
    ColSupp = Table.RemoveColumns(ExpandRecords,{"tbl"})
in
    ColSupp

@+

17exemple-9.xlsx (18.25 Ko)

Edit : 78Chris

Bonjour

Bravo Baroute78.

On peut peut-être ajouter un typage des valeurs en colonne14

    #"Type modifié avec paramètres régionaux" = Table.TransformColumnTypes(ColSupp, {{"Column14", type number}}, "en-US")

Bonjour,

Merci beaucoup pour ces réponses !

Le résultat est parfait.

Le novice que je suis va maintenant essayer de comprendre le code afin de pouvoir le réutiliser à l'avenir, et avec accès direct par le le ruban Excel.

Bien à vous,

Hello,

Merci pour le retour, c'est pas super simple à comprendre pour un non initié, n'hésite pas si besoin

PS : tu ne peux pas reproduire ça avec le ruban

@+

Rechercher des sujets similaires à "power query transformation lignes donnees scindees"