RechercheV dernier prix d’achat date <= à la date de vente

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.
Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #149224
    titeufdu89
    Participant

    Bonjour,

    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_Produit

    Table : 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
    TypeModifie2

    J’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

    #150240
    Kim Leblanc
    Keymaster

    Bonjour 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

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.