Bonjour à tous de nouveau !
Version amendée :
let
Source = Excel.CurrentWorkbook(){[Name="T_ORIGINE"]}[Content],
TypeDate = Table.TransformColumnTypes(Source,{{"DATE DE FIN", type date}}),
VersBas = Table.FillDown(TypeDate,{"IDENTITE PDT"}),
GroupBy = Table.Group(VersBas, {"IDENTITE PDT"}, {{"Ventes", each List.Sum(List.Select([MONTANT], each _>0)) ,type number},{"RR", each List.Sum(List.Select([MONTANT], each _<0)), type number}, {"Date début", each List.Min([DATE DE FIN]), type datetime}, {"Date fin", each List.Max([DATE DE FIN]), type datetime}}),
Filtre = Table.SelectRows(GroupBy, each ([Ventes]+[RR] <> 0)),
ListeDates = Table.AddColumn(Filtre, "LD", each List.Dates([Date début], Duration.Days([Date fin]-[Date début])+1, Duration.From(1))),
VteJour = Table.AddColumn(ListeDates, "Personnalisé", each [Ventes]/List.Count([LD])),
ExpandLD = Table.ExpandListColumn(VteJour, "LD"),
Imput_RR = Table.ReplaceValue(ExpandLD,each [Personnalisé],each if [LD]=[Date début] then [Personnalisé]+[RR] else [Personnalisé],Replacer.ReplaceValue,{"Personnalisé"}),
Libellé = Table.AddColumn(Imput_RR, "Libellé", each [IDENTITE PDT] & " " & Date.ToText( if Date.Month([LD])=Date.Month([Date début]) then [Date début] else Date.StartOfMonth([LD])) & " au " & Date.ToText( if Date.EndOfMonth([LD])<[Date fin] then Date.EndOfMonth([LD]) else [Date fin])),
Final = Table.Group(Libellé, {"Libellé"}, {{"Montant", each Number.Round(List.Sum([Personnalisé]),2), type number}})
in
Final