Microsoft 365 Traitement de données

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 !

Faroyo

XLDnaute Junior
Bonjour à toutes et tous,

Je sollicite vos connaissances et votre expertise afin de solutionner mon problème de traitement de données.

Dans un premier temps, j’aimerai pouvoir supprimer les lignes vide. J’ai essayé plusieurs codes, sans succès. Il semblerait que les lignes vides ne le soient pas en réalité.

Le seul moyen que j’ai trouvé, utilisation d’un filtre, effacer le contenu pour enfin pouvoir les supprimer.

La 2ieme étape, le traitement des data.

Les données arrivent par bloc et ne sont pas très utilisable en l’état.

L’idée serait de transformer chaque bloc en une ligne. Voir fichier joint.



Merci pour votre aide et votre temps.



Faroyo
 

Pièces jointes

Solution
Bonjour,
Comme je ne disposais pas du fichier txt d'origine, je suis parti du tableau chargé...
Et vu que tu importes ce fichier txt via Power Query, j'ai utilisé cet outil pour continuer.
Il se peut donc qu'à partir de ce txt, il y ait quelques incohérences.
J'ai modifié ton code d'origine afin d'y inclure le code utilisé pour traiter le tableau chargé.
Regarde si ça convient
Code utilisé :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="V_1580_DUREES"]}[Content],
    SupprEspaces = Table.TransformColumns(Source,{{"Column1", Text.Trim, type text}}),
    Filtre = Table.SelectRows(SupprEspaces, each ([Column1] <> "") and not Text.StartsWith([Column1], "--") and not Text.StartsWith([Column1], "NOUVEAU")),
    GroupBy = Table.Group(Filtre, {"Column1"}, {{"tbl" , each _}}...
Bonjour,
Comme je ne disposais pas du fichier txt d'origine, je suis parti du tableau chargé...
Et vu que tu importes ce fichier txt via Power Query, j'ai utilisé cet outil pour continuer.
Il se peut donc qu'à partir de ce txt, il y ait quelques incohérences.
J'ai modifié ton code d'origine afin d'y inclure le code utilisé pour traiter le tableau chargé.
Regarde si ça convient
Code utilisé :
PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="V_1580_DUREES"]}[Content],
    SupprEspaces = Table.TransformColumns(Source,{{"Column1", Text.Trim, type text}}),
    Filtre = Table.SelectRows(SupprEspaces, each ([Column1] <> "") and not Text.StartsWith([Column1], "--") and not Text.StartsWith([Column1], "NOUVEAU")),
    GroupBy = Table.Group(Filtre, {"Column1"}, {{"tbl" , each _}} ,GroupKind.Local , (s,c) => Number.From(Text.Start(c[Column1] , 4) = "DATE")),
    AddRec = Table.AddColumn(GroupBy, "Records", each
            [Date = Text.AfterDelimiter([tbl][Column1]{1}, " ", {1, RelativePosition.FromEnd}),
            Ref produit =  Text.Trim(Text.BetweenDelimiters([tbl][Column1]{3}, " ", ".")) & Text.Trim(Text.BetweenDelimiters([tbl][Column1]{4}, " ", ".")),
            Numero de campagne = Text.Trim(Text.BetweenDelimiters([tbl][Column1]{7}, " ", ".")),
            Numero du batch = Text.Trim(Text.BetweenDelimiters([tbl][Column1]{6}, " ", ".")),
            Temps du cycle = Text.Trim(Text.BetweenDelimiters([tbl][Column1]{9}, " ", ".")),
            Temps de chargement = Text.Trim(Text.BetweenDelimiters([tbl][Column1]{10}, " ", ".")),
            Temps de chauffe = Text.Trim(Text.BetweenDelimiters([tbl][Column1]{11}, " ", "."))])[[Records]],
    Expand = Table.ExpandRecordColumn(AddRec, "Records", {"Date", "Ref produit", "Numero de campagne", "Numero du batch", "Temps du cycle", "Temps de chargement", "Temps de chauffe"}, {"Date", "Ref produit", "Numero de campagne", "Numero du batch", "Temps du cycle", "Temps de chargement", "Temps de chauffe"}),
    TypeDate = Table.TransformColumnTypes(Expand, {{"Date", type datetime}}, "fr-FR"),
    TypeNumber = Table.TransformColumnTypes(TypeDate,{{"Ref produit", type number}, {"Numero de campagne", type number}, {"Numero du batch", type number}, {"Temps du cycle", type number}, {"Temps de chargement", type number}, {"Temps de chauffe", type number}})
in
    TypeNumber
Bonne journée
 

Pièces jointes

Hello

c'est exact, tout comme esperer que les blocs soient toujours identiques niveau nombre de lignes..
le demandeur nous le dira
ta solution PQ est certainement plus efficace et rapide (moi il faut bien 10s pour executer l'ensemble...)
Exactement, les extractions font parfois des surprises, à l'insu de notre plein gré...
Pour le temps d'exécution, perso, je préfère une certaine robustesse à des pouillèmes de secondes...
Qu'un traitement se fasse en 10s ou en 5s, c'est bien le résultat qui compte
Bonne journée 😉
 
Hello

c'est exact, tout comme esperer que les blocs soient toujours identiques niveau nombre de lignes..
le demandeur nous le dira
ta solution PQ est certainement plus efficace et rapide (moi il faut bien 10s pour executer l'ensemble...)
Bonjour vgendron, Toujours au top. Merci pour cette version alternative.
Concernant les constantes et le nombre de lignes, jusqu'à present, il n'y jamais eu de chgt. J’espère que cela restera comme ça.
Merci pour le partage de connaisses et pour votre temps.
Faroyo
 
Re-,
Je viens de tester avec ton txt, nickel (j'ai même une ligne supplémentaire...)
et j'ai juste changé l'adresse du fichier dans la requête, sans autre opération.
3091 lignes restituées au lieu de 3090 (le dernier bloc du txt n'était pas inclus dans ton xlsx)
en moins de 4 secondes 🤪
 
Dernière édition:
Un très grand merci pour toutes vos réponses.
Cela va grandement me simplifier la vie.
J'ai largement de quoi faire et de quoi m'instruire. Reste plus qu'à faire un choix entre vos propositions.
Merci infiniment pour votre temps et votre partage de savoir.

Une très bonne journée à vous tous
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Complétude fichier
Réponses
8
Affichages
656
Réponses
15
Affichages
2 K
Retour