
Répondre à: Transformation formule DAX en langage M
Bonsoir,
Voici mes retours. Pour info, n’ayant pas la structure et le fichier d’origine, je n’ai pas pu tester et certains changements seront peut-être nécessaires.
La fonction Buffer permet de mettre en memoir mais elle fait perdrevle Query Folding.
Pour Ordre Mce :
letn Source = Table.Buffer('BDD'),n RankColumn = Table.AddIndexColumn(Source, "Ordre Mce", 1, 1),n RankedTable = Table.Buffer(Table.Sort(RankColumn,{{"Site", Order.Ascending}})),n GroupedTable = Table.Group(RankedTable, {"Site"}, {{"NewTable", each _, type table}}),n RankDense = Table.Combine(List.Transform(GroupedTable[NewTable], (t) => Table.AddIndexColumn(t, "Ordre Mce - Dense", 1, 1)))ninn RankDense
Pour Tranche Mce :
letn Source = Table.Buffer('BDD'),n FilteredTable = Table.SelectRows(Source, each [Ordre Mce] = _[Ordre Mce]),n RankColumn = Table.AddIndexColumn(FilteredTable, "Tranche Mce", 1, 1),n RankedTable = Table.Buffer(Table.Sort(RankColumn,{{"Date", Order.Ascending}})),n GroupedTable = Table.Group(RankedTable, {"Ordre Mce"}, {{"NewTable", each _, type table}}),n RankDense = Table.Combine(List.Transform(GroupedTable[NewTable], (t) => Table.AddIndexColumn(t, "Tranche Mce - Dense", 1, 1)))ninn RankDensen
Pour Mce :
letn Source = Table.Buffer('BDD'),n AddCustomColumn = Table.AddColumn(Source, "Mce", each n letn _ThisTranche = [Tranche Mce],n _PrevDebes = List.Max(Table.SelectRows(Source, each [Ordre Mce] = _[Ordre Mce] and [Tranche Mce] < _ThisTranche and [Code message] = "debes")[Tranche Mce]),n _PrevFines = List.Max(Table.SelectRows(Source, each [Ordre Mce] = _[Ordre Mce] and [Tranche Mce] < _ThisTranche and [Code message] = "fines")[Tranche Mce]),n _Result = if [Code message] = "debes" then 1 else if [Code message] = "fines" then 1 else if _PrevDebes > _PrevFines then 1 else 0n inn _Resultn )ninn AddCustomColumn
N’hésite pas à me faire ton retour.
CommentID=AqukF8z9RC8q5U1, PostID=5IwPALSWYEFc6RO