let
PathFolder = "C:\...\DossierDesFichiersTestReport",
fnExtractClasseurInfo = (xlBinary as binary) as table =>
let
ContenuClasseur = Excel.Workbook(xlBinary),
FiltreFeuillesRésultatsDeTest = Table.SelectRows(ContenuClasseur, each ([Name] <> "TESTING DATE")),
ColonneDataSélectionnée = Table.SelectColumns(FiltreFeuillesRésultatsDeTest,{"Data"}),
PromoteHeaders = Table.TransformColumns(ColonneDataSélectionnée,{{"Data", each Table.PromoteHeaders(_, [PromoteAllScalars=true]), type table}}),
DataDéveloppé = Table.ExpandTableColumn(PromoteHeaders, "Data", {"Tests", "Status", "Date"}, {"Tests", "Status", "Date"}),
ColonneAjoutéeTestingDate = Table.AddColumn(DataDéveloppé, "Testing Date", each ContenuClasseur{[Item="TESTING DATE",Kind="Sheet"]}[Data][Column1]{1})
in
ColonneAjoutéeTestingDate,
FichiersDuDossier = Folder.Files(PathFolder),
FiltreFichiersRacine = let path = if Text.EndsWith(PathFolder, "\") then PathFolder else PathFolder & "\" in Table.SelectRows(FichiersDuDossier, each ([Folder Path] = path)),
FiltreTestReports = Table.SelectRows(FiltreFichiersRacine, each Text.StartsWith([Name], "TestReport_")),
ColonneContentSélectionnée = Table.SelectColumns(FiltreTestReports,{"Content"}),
ExtraireDonnéesClasseur = Table.TransformColumns(ColonneContentSélectionnée,{{"Content", fnExtractClasseurInfo, type table}}),
DonnéesClasseurDéveloppés = Table.ExpandTableColumn(ExtraireDonnéesClasseur, "Content", {"Tests", "Status", "Date", "Testing Date"}, {"Tests", "Status", "Date", "Testing Date"}),
ColonnesSélectionnées = Table.SelectColumns(DonnéesClasseurDéveloppés,{"Tests", "Testing Date", "Status"}),
TriParDateTest = Table.Sort(ColonnesSélectionnées,{{"Testing Date", Order.Ascending}}),
PivotDates = Table.Pivot(Table.TransformColumnTypes(TriParDateTest, {{"Testing Date", type text}}, "fr-FR"), List.Distinct(Table.TransformColumnTypes(TriParDateTest, {{"Testing Date", type text}}, "fr-FR")[#"Testing Date"]), "Testing Date", "Status"),
listChampDates = List.RemoveFirstN(Table.ColumnNames(PivotDates)),
ColonneAjoutéeNouvellesValeurs = Table.AddColumn(PivotDates, "NouvellesValeurs", each let listTests = Record.ToList(Record.SelectFields(_, listChampDates)), newVals = List.Transform({0..List.Count(listTests)-1}, each listTests{_} & (if (try listTests{_-1} otherwise null)<>listTests{_} then "_New" else "")) in Record.FromList(newVals, listChampDates), type record),
ColonnesSuppriméesDates = Table.RemoveColumns(ColonneAjoutéeNouvellesValeurs,listChampDates),
ColonneDéveloppéesNouvellesValeurs = Table.ExpandRecordColumn(ColonnesSuppriméesDates, "NouvellesValeurs", listChampDates, listChampDates)
in
ColonneDéveloppéesNouvellesValeurs