Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Traitement de données

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

  • data_test.xlsx
    581.1 KB · Affichages: 9
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 _}}...

Cousinhub

XLDnaute Barbatruc
Inactif
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

  • PQ_Faroyo_records.xlsx
    695.3 KB · Affichages: 4

vgendron

XLDnaute Barbatruc
Hello vincent,
Joli code, faut juste espérer que les constantes (2406, 2405...) soient toujours les mêmes??
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...)
 

Cousinhub

XLDnaute Barbatruc
Inactif
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
 

Faroyo

XLDnaute Junior
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
 

Lolote83

XLDnaute Barbatruc
Bonjour à tous
Ma version sans avoir encore regardé les votres.
Traitement long (du moins concernant la suppression des lignes) - Il faut que je regarde du coté de Power Query
@+ Lolote83
 

Pièces jointes

  • Copie de FAROYO - Data_Test.xlsm
    627.3 KB · Affichages: 6

Cousinhub

XLDnaute Barbatruc
Inactif
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:

Faroyo

XLDnaute Junior
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
 

Discussions similaires

  • Question
Microsoft 365 Offset
Réponses
5
Affichages
550
Réponses
8
Affichages
590
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…