Bonjour
Il y a peut-être plus court
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
Etat0 = Table.TransformColumnTypes(Source,{{"NOM", type text}, {"PRENOM", type text}, {"DATE", type date}, {"MOIS", Int64.Type}, {"TYPE", type text}, {"MONTANT", Int64.Type}}),
#"Autres colonnes supprimées" = Table.SelectColumns(Etat0,{"NOM", "PRENOM", "MOIS"}),
#"Lignes groupées" = Table.Group(Etat0, {"NOM", "PRENOM", "MOIS"}, {{"MONTANT", each List.Sum([MONTANT]), type nullable number}}),
#"Lignes filtrées" = Table.SelectRows(#"Lignes groupées", each ([MONTANT] >=-1 and [MONTANT] <=1)),
Soldes = Table.AddColumn(#"Lignes filtrées", "TYPE", each "ZSOLDE"),
#"Requêtes fusionnées" = Table.NestedJoin(Etat0, {"NOM", "PRENOM", "MOIS"}, Soldes, {"NOM", "PRENOM", "MOIS"}, "Soldes", JoinKind.Inner),
Etat1 = Table.RemoveColumns(#"Requêtes fusionnées",{"Soldes"}),
#"Valeur remplacée1" = Table.ReplaceValue(Etat1,each [MONTANT],each Number.Abs([MONTANT]),Replacer.ReplaceValue,{"MONTANT"}),
#"Requête ajoutée" = Table.Combine({#"Valeur remplacée1", Soldes}),
#"Lignes triées" = Table.Sort(#"Requête ajoutée",{{"NOM", Order.Ascending}, {"PRENOM", Order.Ascending}, {"TYPE", Order.Ascending},{"DATE", Order.Ascending}}),
#"Valeur remplacée" = Table.ReplaceValue(#"Lignes triées","Z","",Replacer.ReplaceText,{"TYPE"})
in
#"Valeur remplacée"
Si on ne change pas le signe des négatifs enlève la dernière étape