Bonjour,
Hello Fabien (après une escapade au Tara-Inn)…
Avec ce code, (Source à modifier), je regroupe selon le collaborateur/Date/Type, puis filtre sur 4 pointages.
J’ajoute une colonne « Record », afin d’extraire l’heure de début de pause, de fin, et calcule la durée.
Lors de la restitution sur un onglet, il vaut mieux mettre le format de la colonne « Durée » en [h]:mm
Voici le code :
let
Source = Csv.Document(File.Contents("D:\d\fabien\pointage\rapport.csv"),[Delimiter=";", Columns=7, Encoding=1252, QuoteStyle=QuoteStyle.None]),
PromoHead = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
ModType = Table.TransformColumnTypes(PromoHead,{{"Date de pointage", type date}, {"Heure Pointage Forcée", type time}}),
GroupBy = Table.Group(ModType, {"Matricule", "Date de pointage", "Journée type"}, {{"Nombre", each Table.RowCount(_), Int64.Type}, {"Tbl", each _, type table [Matricule=nullable text, Nom=nullable text, #"Prénom "=nullable text, Date de pointage=nullable date, Journée type=nullable text, Heure Pointage Forcée=nullable time, Sens=nullable text]}}),
Filtre4Pointages = Table.SelectRows(GroupBy, each ([Nombre] = 4)),
AjoutRecord = Table.AddColumn(Filtre4Pointages, "Rec", each [Debut =[Tbl][#"Heure Pointage Forcée"]{1}, Fin = [Tbl][#"Heure Pointage Forcée"]{2}, Durée = Fin-Debut]),
ExpandRecord = Table.ExpandRecordColumn(AjoutRecord, "Rec", {"Debut", "Fin", "Durée"}, {"Debut", "Fin", "Durée"}),
TypeTime = Table.TransformColumnTypes(ExpandRecord,{{"Debut", type time}, {"Fin", type time}, {"Durée", type duration}})
in
TypeTime
Si tu n’y arrives pas, tu dis.
Bonne fin de journée, et bon « petit » W-E