Home – Le CFO masqué › Forums › Power Query › RechercheV dernier prix d’achat date <= à la date de vente
- This topic has 1 reply, 2 voices, and was last updated 2 months ago by
Kim Leblanc.
-
AuthorPosts
-
14 January 2025 at 9 h 52 min #149224
titeufdu89
ParticipantBonjour,
Je sollicite votre aide car je souhaiterais sur Power Query lier ma table des ventes avec celles de mes achats et ajouter dans ma table des ventes, une colonne prix d’achat qui reprendrait le dernier d’achat connu à la date de vente mais je n’y parviens pas. (Date achat <= à Date de facturation).
Voici l’architecture de mes datas :
Table de vente : Cumul
Champs utiles : Date de facturation | ID_ProduitTable : Ligne_achats
Champs utiles : Date | ID_Produit | Cout unitaire calculéSur Excel, j’y parviens aisément avec la fonction Max.si.ens j’extrais la date du dernier achat puis je récupère le prix correspondant mais sur Query je bloque, d’autant que ma table Cumul est déjà issue d’une combinaison de plusieurs table et du code ci-dessous.
let
Source = Table.Combine({#”Ventes histo”, Avoir}),
ValeurRemplacee = Table.ReplaceValue(Source, each [Quantité], each if [Type] = “Avoir client” then [Quantité]*-1 else [Quantité], Replacer.ReplaceValue, {“Quantité”}),
ValeurRemplacee1 = Table.ReplaceValue(ValeurRemplacee, each [Total art HT], each if [Type] = “Avoir client” then [Total art HT]*-1 else [Total art HT], Replacer.ReplaceValue, {“Total art HT”}),
ValeurRemplacee2 = Table.ReplaceValue(ValeurRemplacee1, each [Total art TTC], each if [Type] = “Avoir client” then [Total art TTC]*-1 else [Total art TTC], Replacer.ReplaceValue, {“Total art TTC”}),
LignesFiltrees = Table.SelectRows(ValeurRemplacee2, each ([ID_Produit] <> null)),
DuplicationColonne = Table.DuplicateColumn(LignesFiltrees, “Partenaire”, “Partenaire – Copier”),
ColonnesPermutees = Table.ReorderColumns(DuplicationColonne, {“Société”, “Date de facturation”, “ID_Client”, “Partenaire”, “Partenaire – Copier”, “Vendeur”, “Équipe commerciale”, “Numéro”, “Statut”, “Statut du paiement”, “Total signé”, “Type”, “ID_Produit”, “Référence interne”, “Nom d’affichage”, “Quantité”, “Remise (%)”, “Prix unitaire”, “Total art HT”, “Total art TTC”, “Coût”}),
ColonnesRenommees = Table.RenameColumns(ColonnesPermutees, {{“Partenaire – Copier”, “Client”}}),
TypeModifie = Table.TransformColumnTypes(ColonnesRenommees, {{“Total art TTC”, type number}, {“Total art HT”, type number}}),
ValeurRemplacee3 = Table.ReplaceValue(TypeModifie, null, 0, Replacer.ReplaceValue, {“Total art HT”}),
ValeurRemplacee4 = Table.ReplaceValue(ValeurRemplacee3, null, 0, Replacer.ReplaceValue, {“Total art TTC”}),
TypeModifie1 = Table.TransformColumnTypes(ValeurRemplacee4, {{“Prix unitaire”, Currency.Type}, {“Total art HT”, Currency.Type}, {“Total art TTC”, Currency.Type}, {“Coût”, Currency.Type}}),
ColonnesSupprimees = Table.RemoveColumns(TypeModifie1, {“Client”}),
RequetesFusionnees = Table.NestedJoin(ColonnesSupprimees, {“ID_Client”}, Client, {“ID_Client”}, “Client”, JoinKind.LeftOuter),
ClientDeveloppe = Table.ExpandTableColumn(RequetesFusionnees, “Client”, {“Nom d’affichage”, “Vendeur”, “Équipe commerciale”}, {“Nom d’affichage.1”, “Vendeur.1”, “Équipe commerciale.1”}),
ColonnesRenommees2 = Table.RenameColumns(ClientDeveloppe, {{“Nom d’affichage.1”, “Client”}, {“Vendeur.1”, “Der Rep”}}),
TexteExtraitAvantDelimiteur = Table.TransformColumns(ColonnesRenommees2, {{“Client”, each Text.BeforeDelimiter(_, “,”), type text}}),
RequetesFusionnees1 = Table.NestedJoin(TexteExtraitAvantDelimiteur, {“Der Rep”}, #”Vendeurs actifs”, {“Vendeur”}, “Vendeurs actifs”, JoinKind.LeftOuter),
VendeursActifsDeveloppe = Table.ExpandTableColumn(RequetesFusionnees1, “Vendeurs actifs”, {“Vendeur”}, {“Vendeur.1”}),
ValeurRemplacee5 = Table.ReplaceValue(VendeursActifsDeveloppe, null, “z-Non attribué”, Replacer.ReplaceValue, {“Vendeur.1”}),
ColonnesRenommees1 = Table.RenameColumns(ValeurRemplacee5, {{“Vendeur.1”, “Rep”}}),
ColonnesSupprimees1 = Table.RemoveColumns(ColonnesRenommees1, {“Der Rep”}),
TypeModifie2 = Table.TransformColumnTypes(ColonnesSupprimees1, {{“Quantité”, Int64.Type}})
in
TypeModifie2J’ai vu un certain nombre de tutos sur le sujet mais je ne parviens pas à les mettre en oeuvre dans mon fichier.
Je vous remercie par avance pour votre aide et reste à disposition pour tout complément d’information éventuel.
Jean-Christophe
12 February 2025 at 16 h 21 min #150240Kim Leblanc
KeymasterBonjour Jean-Christophe,
Pourriez-vous nous fournir un fichier Excel avec des données fictives pour qu’on puisse vous aider? Le fait de fournir seulement le code M rend la chose plus difficile, surtout que plusieurs étapes ne concernent pas votre problématique.
Si vous travaillez avec Power BI ou Power Pivot, avez-vous essayé de créer une mesure en DAX au lieu de créer une fusion dans Power Query? C’est parfois préférable que de créer plusieurs fusions dans Power Query.
Au plaisir,
Kim
-
This reply was modified 2 months ago by
Kim Leblanc.
-
This reply was modified 2 months ago by
-
AuthorPosts
- You must be logged in to reply to this topic.