Combinaison de plusieurs fichiers texte

Bonjour à tous,

Je viens vers vous car je suis dans une impasse.

Pour le travail, où je suis en Excel 2016, je dois combiner et extraire des données de fichiers texte pour analyse ultérieure.
Dans le dossier qui m'intéresse, il y a différents type de fichiers dont mes txt et ceux ci sont plutôt nombreux (20 000 en moyenne).

Dans ces txt, il n'y que des lignes et celles qui m'intéressent sont écrite selon le modèle: catégorie= valeur
Tous les fichiers sont écrits selon le même modéle, seuls les titres et valeurs changent.

Pour l'instant, et en passant par power query, je n'arrive à obtenir que le listing des fichiers et non leur contenu...

Ma question est donc la suivante:
Auriez vous une (ou plusieurs!) solution à me proposer pour extraire et mettre en forme ces données dans un excel?
Je n'ai actuellement aucune contrainte de présentation des données dans l'excel.

Je suis évidemment disponible pour répondre à toute interrogation et ne pourrais malheureusement vous partager aucun fichier (source ou réception).

Cordialement

Hello,

Envoie deux fichiers txt exemple avec 4 lignes chacun et une structure représentative et on te fera ça

@+

Bonjour à tous !

Et....

Il serait judicieux de joindre un ou deux fichiers txt (anonymisés) à votre demande.

Re bonjour,

Voici un exemple de la source et de présentation des résultats

16exemple-source.txt (618.00 Octets)

Hello,

Une proposition, tu as juste à remplacer le nom du dossier où il y a tes fichiers textes

let
    Source = Folder.Files("C:\Users\test3\test2\Auto\Bureau\Test\Data")[[Name],[Content]],

    TransformTable = Table.TransformColumns( Source , {"Content" , each Csv.Document(_,[Delimiter="@", Columns=1, Encoding=65001, QuoteStyle=QuoteStyle.None])}),

    Expand = Table.ExpandTableColumn(TransformTable, "Content", {"Column1"}, {"Column1"}),

    Filter = Table.SelectRows(Expand, each 
Text.StartsWith([Column1], "catégorie", Comparer.OrdinalIgnoreCase) or 
Text.StartsWith([Column1], "Taux", Comparer.OrdinalIgnoreCase) or 
Text.StartsWith([Column1], "extrait", Comparer.OrdinalIgnoreCase) or 
Text.StartsWith([Column1], "complet", Comparer.OrdinalIgnoreCase)),

    SplitAny = Table.TransformColumns(Filter, {"Column1" , each Text.SplitAny(_,"=:")} ),

    Extract = Table.TransformColumns(SplitAny, {"Column1", each Text.Combine(List.Transform(_, (x)=> Text.Trim(x)),"|"), type text}),

    SplitCol = Table.SplitColumn(Extract, "Column1", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Type", "Valeur"}),

    Pivot = Table.Pivot(SplitCol, List.Distinct(SplitCol[Type]), "Type", "Valeur")
in
    Pivot

@+

Bonjour,

Merci pour cette proposition, je vais essayer de la mettre en pratique et reviendrait vers vous

Je ne sais pas si ça peut influencer sur une méthode, mais on s'est rendu compte que chaque fichier texte faisait exactement 32 lignes (et chaque info et toujours à la même ligne).

@+

Hello,

Il faut penser le modèle en mode évolutif. Aujourd'hui c'est le même nombre de ligne mais demain ce sera peut être différent

@+

Bonjour à tous !

@BAROUTE78 : Hello !

Il faut penser le modèle en mode évolutif. Aujourd'hui c'est le même nombre de ligne mais demain ce sera peut être différent

Ou pas....!

Nous sommes dans l'obligation de prôner une certaine stabilité.
Que faire, par exemple, si le champ commence par "t_taux" et non 'Taux" ?
C'est bien là une..... évolution.

Rechercher des sujets similaires à "combinaison fichiers texte"