Langage M problème code

Bonjour,

Je veux dans un tableau regrouper les références de la colonne Produit lib, les références identiques qui ont le meme prix de la colonne Prix revient unitaire. Le tout en additionnant les quantités de la colonne QTES. J'aimerais que ca concerne que les lignes qui ont dans la colonne cate stock une catégorie commencent par "PF". Bien sur si meme reference dans la colonne Produit lib mais prix de la colonne Prix revient unitaire différent, alors ne rien faire et tout laisser séparer. Merci a vous j'y arrive presque il doit certainement me manquer une étape mais j'ignore laquelle. Je vous met mon code et le fichier avec la date en dessous :

let
Source = Excel.CurrentWorkbook(){[Name="Stock"]}[Content],
FilteredRows = Table.SelectRows(Source, each [Montant revient] <> 0 and [QTES] <> 0),
FilteredByCateStock = Table.SelectRows(FilteredRows, each Text.StartsWith([cate stock], "PF")),
GroupedRows = Table.Group(
FilteredByCateStock,
{"Produit lib", "Prix revient unitaire"},
{
{"Somme QTES", each List.Sum(List.Transform([QTES], each if _ is null then 0 else _)), type number},
{"Somme Montant revient", each List.Sum(List.Transform([Montant revient], each if _ is null then 0 else _)), type number}
}
)
in
GroupedRows
16classeur1.xlsx (129.94 Ko)

Bonjour

image

Un petit conseil, quant tu envoies un bout de code inscrit le dans le cadre obtenu avec l'option "</>"

let
Source = Excel.CurrentWorkbook(){[Name="Stock"]}[Content],
FilteredRows = Table.SelectRows(Source, each [Montant revient] <> 0 and [QTES] <> 0),
FilteredByCateStock = Table.SelectRows(FilteredRows, each Text.StartsWith([cate stock], "PF")),
GroupedRows = Table.Group(
FilteredByCateStock,
{"Produit lib", "Prix revient unitaire"},
{
{"Somme QTES", each List.Sum(List.Transform([QTES], each if _ is null then 0 else _)), type number},
{"Somme Montant revient", each List.Sum(List.Transform([Montant revient], each if _ is null then 0 else _)), type number}
}
)
in
GroupedRows

Voila qui est plus clair et plus lisible
Je te souhaite trouver quelqu'un qui pourra t'aider
Bonne journée

Bonjour à tous !

Vous êtes silencieux sur la gestion des arrondi du prix de revient :

image

Le regroupement sur le champ "prix de revient", ne peut se réaliser.

Faut-il arrondir à 5 décimales ?

Oui allons y même a 4 décimales

Bonjour à tous de nouveau !

Une proposition (à tester !) :

let
  Source = Excel.CurrentWorkbook(){[Name = "Stock"]}[Content], 
  Filtre = Table.SelectRows(
    Source, 
    each Text.StartsWith([cate stock], "PF") and [Montant revient] <> 0 and [QTES] <> 0
  ), 
  ArrondiPxRevient = Table.TransformColumns(
    Filtre, 
    {"Prix revient unitaire", each Number.Round(_, 4), Number.Type}
  ), 
  GroupedRows = Table.Group(
    ArrondiPxRevient, 
    {"Produit lib", "Prix revient unitaire"}, 
    {
      {"Somme QTES", each List.Sum([QTES]), type number}, 
      {"Somme Montant revient", each List.Sum([Montant revient]), type number}
    }
  )
in
  GroupedRows

Merci de votre reponse, le code est différent de celui que j avais fait mais j ai le meme problème. Mon total Somme Montant revient est correct, mais mon SOmme QTES ne l'ai pas, il manque des QTES. Si je fais un filtre tout bête sur le tableau de base sur PF par exemple et que je fais la somme des QTES, je n ai pas ce que me renvoi la requete

Bonjour à tous de nouveau !

Peut-être la conséquence logique de votre volonté d'éliminer les Qtés et Prix de revient à 0 ?

image

Merci beaucoup j ai modifié et en effet ca ofnctionne beaucoup mieux

Bonjour à tous de nouveau !

Bien....

Je vous remercie de ce retour.

----> Ne pas oublier de passer le sujet en mode résolu !

Rechercher des sujets similaires à "langage probleme code"