Bonjour
Voici une possibilité de code M pour récupérer le CA glissant sur les 3 lignes précédentes
Tableau1 = votre tableau avec une colonne Mois et une colonne CA
le principe est d'ajouter un index,
d'indiquer la première ligne à prendre en compte 0, 0, 0, 1, 2, 3... (0 = la première ligne)
et la hauteur 1, 2, 3, 3, 3, 3...
et de faire la somme de la colonne [CA] à partir de la ligne définie et de la hauteur avec List.Sum ( List.Range...
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
Index = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
Index_départ = Table.AddColumn(Index, "Départ", each if [Index] > 3 then [Index]-3 else 0),
Hauteur = Table.AddColumn(Index_départ, "Hauteur", each if [Index] < 3 then [Index] else 3),
CA_glissant = Table.AddColumn(Hauteur, "CA Glissant", each List.Sum(List.Range(Source[CA],[Départ],[Hauteur])))
in
CA_glissant
Si votre table est volumineuse, vous pouvez ajouter un List.Buffer pour mettre en mémoire la colonne [CA] : List.Buffer(Source[CA])
Par exemple avec les deux colonnes intermédiaires en moins
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
Index = Table.AddIndexColumn(Source, "Index", 1, 1, Int64.Type),
Buffer = List.Buffer(Source[CA]),
CA_glissant = Table.AddColumn(Index, "CA Glissant", each
List.Sum(
List.Range(
Buffer,
List.Max({0,[Index]-3}),
List.Min({[Index],3})
)
)
)
in
CA_glissant
------------------------------
S LORIN
------------------------------