Power query

Sur ma requête "Marge", je voudrais pouvoir regrouper mes lignes pas seulement sur mon CA total mais aussi sur mes quantités pour obtenir au final un prix moyen unitaire par article et par Client et/ou fournissseur ainsi que la marge et le pourcentage.

Merci d'avance pour votre aide.

Bonjour

Je t'avais déjà indiqué comment faire ici https://forum.excel-pratique.com/viewtopic.php?f=2&t=131645&start=20

Bonjour Chris78,

En effet, mais je ne connais toujours pas ni la manipulation ni ou se trouve le "Rouage". Une formule serait plus simple pour pouvoir l'appliquer ou la recopier.

Merci d'avance,

RE

Quand on est dans PowerQuery, pour chaque requête tu as dans le volet de droite les différentes commandes actions dans la requête

Pour quasi toutes les lignes, il y a un rouage au bout de la ligne qui permet d'éditer et modifier l'action

grouper

Voici la code de la requête Marge avec la Qté

let
    Source = Final,
    #"Autres colonnes supprimées" = Table.SelectColumns(Source,{"Article", "Client /Fournisseur", "Port", "Qte Totale", "CA Total", "CA/Qte"}),
    #"Personnalisée ajoutée1" = Table.AddColumn(#"Autres colonnes supprimées", "Type", each Text.Start([#"Client /Fournisseur"],1)),
    #"Lignes groupées" = Table.Group(#"Personnalisée ajoutée1", {"Article", "Port", "Type"}, {{"CA Total", each List.Sum([CA Total]), type number}, {"Qté Totale", each List.Sum([Qte Totale]), type number}}),
    #"Colonnes fusionnées" = Table.CombineColumns(Table.TransformColumnTypes(#"Lignes groupées", {{"CA Total", type text}, {"Qté Totale", type text}}, "fr-FR"),{"CA Total", "Qté Totale"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Fusionné"),
    #"Colonne dynamique" = Table.Pivot(#"Colonnes fusionnées", List.Distinct(#"Colonnes fusionnées"[Type]), "Type", "Fusionné"),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(Table.TransformColumnTypes(#"Colonne dynamique", {{"F", type text}}, "fr-FR"), "F", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"F_CA", "F_Qte"}),
    #"Fractionner la colonne par délimiteur1" = Table.SplitColumn(Table.TransformColumnTypes(#"Fractionner la colonne par délimiteur", {{"C", type text}}, "fr-FR"), "C", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"C_CA", "C_Qté"}),
    #"Valeur remplacée" = Table.ReplaceValue(#"Fractionner la colonne par délimiteur1",null,"0",Replacer.ReplaceValue,{"F_CA", "F_Qte", "C_CA", "C_Qté"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Valeur remplacée",{{"F_CA", type number}, {"F_Qte", type number}, {"C_CA", type number}, {"C_Qté", type number}}),
    #"Personnalisée ajoutée2" = Table.AddColumn(#"Type modifié1", "Marge", each [C_CA]+[F_CA]),
    #"Personnalisée ajoutée3" = Table.AddColumn(#"Personnalisée ajoutée2", "%", each if [C_CA]>0 then ([Marge]/[C_CA]) else 0),
    #"Type modifié" = Table.TransformColumnTypes(#"Personnalisée ajoutée3",{{"%", Percentage.Type}}),
    #"Colonnes renommées" = Table.RenameColumns(#"Type modifié",{{"C_CA", "CA Ventes"}, {"F_CA", "CA Achats"}, {"F_Qte", "Qte_Achats"}, {"C_Qté", "Qté_Ventes"}})
in
    #"Colonnes renommées"

Chris,

Merci pour ton retour et ton explication. Par contre, quand je veux modifié le rouage, les données se chargent automatiquement. Hors avec plus de 100 000 lignes, le temps de chargement est trop long. Existe il une solution pour charger les données, à la fin des modifications.

Merci d'avance,

RE

J'ai posté le code complet de la requête modifiée : édite la requête et remplace le contenu par le résultat.

Mais tu auras forcément un chargement à la validation

Je ne pense pas qu'on puisse modifier cela. A priori c'est plus la complexité des requêtes que la taille de la source qui prend du temps

Ok, encore merci pour ta réponse.

Rechercher des sujets similaires à "power query"