Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 98)
  • Auteur
    Articles
  • en réponse à : recherche selon plusieurs conditions #138730
    Daniel
    Participant

    Bonjour Emilie, le Forum,

    En espérant répondre à ta demande, voici ce que je propose :

    Requête (voir aussi fichier joint)
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabVisitesPatients”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Patient”, type text}, {“Date de début”, type date}, {“Date de fin”, type date}}),
    // On regroupe les lignes du même patient
    GrouperLignesPatient = Table.Group(ModificationTypeDonnees, {“Patient”}, {{“AllRows”, each _, type table [Patient=nullable text, Date de début=nullable date, Date de fin=nullable date, Index=nullable number]}}),
    // Dabs la table de regroupement, on ajoute un index pour chaque ligne
    AjoutColIndex = Table.TransformColumns(GrouperLignesPatient, {{“AllRows”, each Table.AddIndexColumn(_,”IndexVisites”,0,1)}}),
    // On va maintenant récupérer la date de debut de la visite future
    DateVisteFuture = Table.AddColumn(AjoutColIndex, “AllRows1″, each let
    AllDataTable = [AllRows],
    DateVisteFuture = Table.AddColumn(
    AllDataTable,”Date Visite Future”,
    each try AllDataTable [Date de début] {[IndexVisites]+1} otherwise null,type date)
    in DateVisteFuture),
    CalculNombreDeJours = Table.TransformColumns(DateVisteFuture, {{“AllRows1″, each Table.AddColumn(_,”Nb jours”, each [Date Visite Future] – [Date de fin], Int64.Type)}}),
    ListeofSingleTables = Table.Combine( CalculNombreDeJours[AllRows1],{“Patient”,”Date de début”,”Date de fin”, “Nb jours”}),
    ModificationTypeDonneesFinale = Table.TransformColumnTypes(ListeofSingleTables,{{“Nb jours”, Int64.Type}})
    in
    ModificationTypeDonneesFinale
    Fin de la requête

    Attachments:
    You must be logged in to view attached files.
    en réponse à : historique et cumul #136778
    Daniel
    Participant

    Bonjour hboisteau, le Forum,

    1 – Créer une fonction qui servira à faire le calcul demandé comme suit
    (valeurs as list, groupe as list) as list =>

    let
    GoupRunningTotalList = List.Generate
    (
    ()=> [ GoupRunningTotal = valeurs{0}, i = 0 ],

    each [i] < List.Count(valeurs),

    each try
    if groupe{[i]} = groupe{[i] + 1}
    then [GoupRunningTotal = [GoupRunningTotal] + valeurs{[i] + 1}, i = [i] + 1]
    else [GoupRunningTotal = valeurs{[i] + 1}, i = [i] + 1]

    otherwise [i = [i] + 1]
    ,
    each [GoupRunningTotal]
    )
    in
    GoupRunningTotalList

    2 – Requête des données
    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“date”, type date}, {“N° de serie”, type text}, {“resultat1”, Int64.Type}, {“resultat2”, Int64.Type}}),
    AjoutColAnneeMois = Table.AddColumn(ModificationTypeDonnees, “Période”, each Date.ToText([date],”yyyy-MM”)),
    GroupAnneeMoisSerie = Table.Group(AjoutColAnneeMois, {“Période”, “N° de serie”}, {{“Historique du numéro de série”, each Table.RowCount(_), Int64.Type}, {“Resultat1”, each List.Sum([resultat1]), type nullable number}, {“Resultat2”, each List.Sum([resultat2]), type nullable number}}),
    TriSerieAnneeMois = Table.Sort(GroupAnneeMoisSerie,{{“N° de serie”, Order.Ascending}, {“Période”, Order.Ascending}}),

    BufferedValues = List.Buffer(TriSerieAnneeMois[#”Historique du numéro de série”]),
    BufferedGroup = List.Buffer(TriSerieAnneeMois[#”N° de serie”]),

    RT = Table.FromColumns(
    {
    TriSerieAnneeMois[Période],TriSerieAnneeMois[#”N° de serie”], TriSerieAnneeMois[#”Historique du numéro de série”],
    fxGroupedRunningTotal(BufferedValues, BufferedGroup),TriSerieAnneeMois[Resultat1],TriSerieAnneeMois[Resultat2]
    },
    {
    “Période”,
    “N° de série”,
    “Historique du numéro de série”,
    “Nombre apparition numéro de série”,
    “Résultat 1”,
    “Résultat 2”
    }
    ),
    TriSurPériode = Table.Sort(RT,{{“Période”, Order.Ascending}})

    in TriSurPériode

    Reste un souci de tri sur le numéro de série qui ne donne pas exactement le même résultat que celui attendu.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter jours ouvrés #136751
    Daniel
    Participant

    Bonjour Sébastien, le Forum,

    Tu parle de variabilité des jours ouvrés, mais quel serait le paramètre qui définirait cette variabilité.
    Pourrais-tu donner de plus amples explications ?
    Cordialement
    Daniel

    en réponse à : Passer d’une liste en colonne à un tableau. #136745
    Daniel
    Participant

    Bonjour jsimon75002, Xavier, Le Forum,

    Voici ma contribution
    1ère requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    AjoutColIndex = Table.AddIndexColumn(Source, “Index”, 1, 1, Int64.Type),
    Conserver8PremieresLignes = Table.FirstN(AjoutColIndex,8),
    ModificationTypeDonnees = Table.TransformColumnTypes(Conserver8PremieresLignes,{{“Index”, type text}, {“Colonne1”, type text}}),
    PermutationColonnes = Table.ReorderColumns(ModificationTypeDonnees,{“Index”, “Colonne1″}),
    TranspositionTable = Table.Transpose(PermutationColonnes),
    CreationDesListes = Table.ToColumns(TranspositionTable)
    in
    CreationDesListes
    2ème requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    #”Type modifié” = Table.TransformColumnTypes(Source,{{“Colonne1″, type any}}),
    #”Premières lignes supprimées” = Table.Skip(#”Type modifié”,8),
    AjoutColIndex = Table.AddIndexColumn(#”Premières lignes supprimées”, “Index”, 1, 1, Int64.Type),
    AjoutColLigneDétails = Table.AddColumn(AjoutColIndex, “LigneDétail”, each if [Colonne1] = “Détails” then 1 else if [Index] = 1 then 1 else null),
    PaquetIdentifiant = Table.AddColumn(AjoutColLigneDétails, “IdentifiantPaquetLignes”, each if [Index]=1 then 1 else List.Sum(List.FirstN(AjoutColLigneDétails[LigneDétail],[Index]))),
    FiltreLignesNullOuDétails = Table.SelectRows(PaquetIdentifiant, each ([Colonne1] <> null and [Colonne1] <> “Détails”)),
    #”Lignes groupées” = Table.Group(FiltreLignesNullOuDétails, {“IdentifiantPaquetLignes”}, {{“All”, each _, type table [Colonne1=any, Index=number, LigneDétail=any, IdentifiantPaquetLignes=number]}}),
    #”Personnalisée ajoutée” = Table.AddColumn(#”Lignes groupées”, “ColIdentifiant”, each Table.AddIndexColumn([All],”ColIdentifiant”,1)),
    #”ColIdentifiant développé” = Table.ExpandTableColumn(#”Personnalisée ajoutée”, “ColIdentifiant”, {“Colonne1”, “ColIdentifiant”}, {“Colonne1”, “ColIdentifiant.1″}),
    #”Colonnes supprimées” = Table.RemoveColumns(#”ColIdentifiant développé”,{“All”}),
    #”Colonne dynamique” = Table.Pivot(Table.TransformColumnTypes(#”Colonnes supprimées”, {{“ColIdentifiant.1”, type text}}, “fr-FR”), List.Distinct(Table.TransformColumnTypes(#”Colonnes supprimées”, {{“ColIdentifiant.1”, type text}}, “fr-FR”)[ColIdentifiant.1]), “ColIdentifiant.1”, “Colonne1″),
    #”Colonnes renommées” = Table.RenameColumns(#”Colonne dynamique”,tabEntetesColonnes),
    #”Valeur remplacée” = Table.ReplaceValue(#”Colonnes renommées”,”€”,””,Replacer.ReplaceText,{“Montant HT”, “Montant TTC”}),
    #”Valeur remplacée1″ = Table.ReplaceValue(#”Valeur remplacée”,”.”,”,”,Replacer.ReplaceText,{“Montant HT”, “Montant TTC”}),
    #”Type modifié1″ = Table.TransformColumnTypes(#”Valeur remplacée1″,{{“Date d’émission”, type date}, {“Date de dépôt”, type date}, {“Etat”, type text}, {“Réfèrence”, Int64.Type}, {“Date de virement”, type date}, {“N* de virement”, type text}, {“Montant HT”, type number}, {“Montant TTC”, type number}}),
    #”Colonnes supprimées1″ = Table.RemoveColumns(#”Type modifié1″,{“IdentifiantPaquetLignes”})
    in
    #”Colonnes supprimées1″

    Voir fichier ci-joint
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout colonne Horodatage – Valeur de la dernière ligne. #136206
    Daniel
    Participant

    Bonjour jsimon75002, le Forum,

    Essaye ceci comme source
    Excel.Workbook(File.Contents(“\\Mac\Home\Desktop\TESTS\MyReport_DATA.xlsx”), null, true)[Data]{0}
    Cela devrait te donner l’affichage de tes données. Par contre, je ne vois pas en dernière ligne la date de mise à jour comme annoncé dans ton 1er message.
    Sinon, ce que je t’ai communiqué fonctionne une fois la source modifiée mais la date est fausse car inexistante et la dernière ligne de données est supprimée par la dernière étape (suppression de la ligne contenant la date) alors que dans le cas de ton fichier de données elle correspond à un ligne de donnée valide.
    Merci de ton retour.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Filtrer un tableau selon 2 critères #136163
    Daniel
    Participant

    Bonjour Cricri, le Forum,

    Peut-être que ce qui suit vous aidera ou à tout le moins vous mettra sur une piste pour solutionner votre problème.

    let
    Source = Excel.CurrentWorkbook(){[Name=”Feuil1″]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Fournisseur”, Int64.Type}, {“Article”, type any}, {“Date achat”, type datetime}, {“prix”, type number}}),
    GrouperSurFournisseurArticle = Table.Group(ModificationTypeDonnees, {“Fournisseur”, “Article”}, {{“DateMax”, each List.Max([Date achat]), type nullable datetime}, {“AllRows”, each _, type table [Fournisseur=nullable number, Article=any, Date achat=nullable datetime, prix=nullable number]}}),
    AjoutColDernierPrix = Table.AddColumn(GrouperSurFournisseurArticle, “Dernier Prix”, each let DernDate = [DateMax] in Table.SelectRows([AllRows], each [#”Date achat”] = DernDate)[prix]{0}),
    SuppressionColonnes = Table.RemoveColumns(AjoutColDernierPrix,{“DateMax”, “AllRows”})
    in
    SuppressionColonnes

    Feuil1 : nom du tableau structuré Excel
    On groupe sur le fournisseur et l’article en prenant la date Max et toutes les lignes contenues dans le jeu de données
    AjoutColDernierPrix :
    DernDate : correspond à la date Max de chaque couple Fournisseur/Article
    puis on sélectionne les lignes pour lesquelles la date d’achat correspond à la date Max
    [prix]{0} correspond à la colonne Prix et {0] à la 1ère ligne partant su principe que l’on a qu’une seule date max

    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout colonne Horodatage – Valeur de la dernière ligne. #136158
    Daniel
    Participant

    Bonjour jsimon75002, le Forum,

    Bonne année à toi aussi.
    Pour résoudre ton problème, je tenterais an Power Query la chose suivante :
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“N° Facture”, type any}}),
    DateMiseAJour = let
    NumLigne = Table.RowCount(ModificationTypeDonnees)-1,
    DateData = ModificationTypeDonnees{NumLigne}[#”N° Facture”]
    in DateData,
    AjoutColDate = Table.AddColumn(ModificationTypeDonnees, “Date Maj”, each DateMiseAJour),
    ModificationTypeDonneesColDate = Table.TransformColumnTypes(AjoutColDate,{{“Date Maj”, type datetime}}),
    SuppressionDerniereLigne = Table.RemoveLastN(ModificationTypeDonneesColDate,1)
    in
    SuppressionDerniereLigne

    tabData correspond à tes données source (à changer éventuellement) car je suis parti d’un tableau structuré sous Excel.
    NumLigne compte le nombre de lignes de ton jeu de données auquel je retranche 1 car Power query commence le compte à partir de zéro
    DateDate extrait la date se situant à la ligne NumLigne de la colonne N° Facture

    En espérant avoir pu t’apporter un peu d’aide.
    Cordialement
    Daniel

    en réponse à : Mesures qui ne sont pas utilisées #134935
    Daniel
    Participant

    Bonjour Jblan, le Forum,

    Nativement, je ne pense pas que cela soit possible, par contre il existe 2 outils externes qui permettent de réaliser ce que vous demander, il s’agit de :
    Measure Killer
    et
    Power BI Cleaner
    Des tutos existent sur YouTube vous montrant les fonctionnalités de ce outils externes.

    D’autre part, il est aussi possible d’utiliser DAX Studio (qui est aussi un outil externe) mais cela me semble plus complexe

    En espérant que cela vous aidera.
    Cordialement
    Daniel

    en réponse à : Calcul sur critères multiples #134820
    Daniel
    Participant

    Bonjour maitre_rahl, le Forum,

    Pour répondre à ta demande, je procéderai comme suit

    let
    Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“Equipment”, type text}, {“carte”, Int64.Type}, {“Addition”, Int64.Type}}),
    TriSurEquipementEtCarte = Table.Sort(ModificationTypeDonnees,{{“Equipment”, Order.Ascending}, {“carte”, Order.Ascending}}),
    AjoutPréfixeColCarte = Table.TransformColumns(TriSurEquipementEtCarte, {{“carte”, each “Carte ” & Text.From(_, “fr-FR”), type text}}),
    PivotColonneCarte = Table.Pivot(AjoutPréfixeColCarte, List.Distinct(AjoutPréfixeColCarte[carte]), “carte”, “Addition”),
    Carte1vsCarte2 = Table.AddColumn(PivotColonneCarte, “Carte 1 vs Carte 2”, each [Carte 1] – [Carte 2])
    in
    Carte1vsCarte2
    Cela donne le résultat escompté directement voir le fichier ci-joint.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Power Query – Colonne au format Texte en Date(mois) #133014
    Daniel
    Participant

    Bonjour Mathieu, le Forum,

    1ère Solution
    1 – Avoir une table, avec les noms des mois comme orthographiés dans tes données (colonne Attribut) et en 2ème colonne, le numéro des mois (1 à 12), chargr cette table dans Power Query
    2 – Charger tes données dans Power Query et faire une jointure entre les deux tables sur base du nom du mois, on développera la nouvelle table ainsi obtenue en ne gardant que le numéro du mois et en décochant la case “Utiliser le nom de la colonne d’orgine….”)
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabRequete2″]}[Content],
    #”Type modifié” = Table.TransformColumnTypes(Source,{{“Attribut”, type text}}),
    #”Requêtes fusionnées” = Table.NestedJoin(#”Type modifié”, {“Attribut”}, tblListeMois, {“Mois”}, “tblListeMois”, JoinKind.LeftOuter),
    DevelopperNumMois = Table.ExpandTableColumn(#”Requêtes fusionnées”, “tblListeMois”, {“Num_Mois”}, {“Num_Mois”}),
    AjoutDateDebutMois = Table.AddColumn(DevelopperNumMois, “Date”, each Date.FromText(“01/”& Number.ToText([Num_Mois]) & “/2023”)),
    ModificationTypeDonnees = Table.TransformColumnTypes(AjoutDateDebutMois,{{“Date”, type date}})
    in
    ModificationTypeDonnees

    Solution 2
    Les noms de mois dans tes données sont écrits en entier (Janvier, Février,….), si c’est le cas alors la requête ci-après fera le job
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabRequete1″]}[Content],
    NumeroDuMois = Table.AddColumn(Source, “N_Mois”, each Date.Month(Date.FromText([Attribut]&”1″))),
    RenommerColonnes = Table.RenameColumns(NumeroDuMois,{{“Attribut”, “Nom_Mois”}}),
    AjoutDateDebutMois = Table.AddColumn(RenommerColonnes, “Date”, each Date.FromText(“01/”& Number.ToText([N_Mois]) & “/2023”)),
    ModificationTypeDonnees = Table.TransformColumnTypes(AjoutDateDebutMois,{{“Date”, type date}})
    in
    ModificationTypeDonnees
    En espérant avoir pu t’aider.
    Cordialement
    Daniel

    Daniel
    Participant

    Bonjour cyprien, le Forum,

    Cela fonctionne, la table Nomenclature doit avoir le même type de données (Article) que la table des Besoins. Comme les articles étaient numériques, le type de données était entier dans la table des Besoins et dans la table Nomenclature était en type Text. Il a donc suffit de les mettre au même type (j’ai choisi Entier pour les deux tables) et cela donne le résultat attendu.
    Je met en pièce jointe ton fichier avec le résultat.
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : colonne conditionnelle #132771
    Daniel
    Participant

    Bonjour hboisteau, le Forum,

    En pièce jointe, un fichier excel avec deux méthodes possibles (d’autres existent surement)

    1ère requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    #”Type modifié” = Table.TransformColumnTypes(Source,{{“SITESLOT”, Int64.Type}, {“Resultat Mas”, Int64.Type}}),
    #”Colonne conditionnelle ajoutée” = Table.AddColumn(#”Type modifié”, “resultat MAS 1″, each if [SITESLOT] = 140 then [Resultat Mas]*10 else if [SITESLOT] = 141 then [Resultat Mas]*10 else if [SITESLOT] = 175 then [Resultat Mas]*10 else if [SITESLOT] = 176 then [Resultat Mas]*10 else if [SITESLOT] = 193 then [Resultat Mas]*10 else if [SITESLOT] = 194 then [Resultat Mas] else [Resultat Mas]*10)
    in
    #”Colonne conditionnelle ajoutée”
    Bien que je ne comprenne pas pourquoi tout ce qui n’est pas égal aux valeurs spécifiées doivent être multiplié par 10 sauf le SITESLOT 194. Cela fonctionne parfaitement dans mon exemple.

    2ème requête
    Petit préalable, il faut créer une table des SITESLOT qui devront être multiplié par 10 et charger cette table dans Power query (ce sera une requête supplémentaire) et la transformer en Liste pur utilisation ultérieure.
    Ensuite on charge les données, puis on ajoute une colonne avec la formule suivante :
    #”Personnalisée ajoutée” = Table.AddColumn(#”Type modifié”, “Resultat Mas 1″, each if List.Contains(tblSitesLot,[SITESLOT])= true then [Resultat Mas] * 10 else [Resultat Mas])

    Ce qui donne la requête suivante
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    #”Type modifié” = Table.TransformColumnTypes(Source,{{“SITESLOT”, Int64.Type}, {“Resultat Mas”, Int64.Type}}),
    #”Personnalisée ajoutée” = Table.AddColumn(#”Type modifié”, “Resultat Mas 1″, each if List.Contains(tblSitesLot,[SITESLOT])= true then [Resultat Mas] * 10 else [Resultat Mas])
    in
    #”Personnalisée ajoutée”
    Tous les SITESLOT contenus dans la liste des SITESLOTS seront alors multiplié par 10, les autres garderont leurs valeurs d’origine.
    En espérant avoir pu vous aider à résoudre votre problématique
    Cordialement
    Daniel

    Attachments:
    You must be logged in to view attached files.
    en réponse à : colonne conditionnelle #132660
    Daniel
    Participant

    Bonjour hboisteau, le Forum,

    Voyons voir, si j’ai bien compris dès que le SITELOT est égal à 140, on prend le RESULTAT MAS que l’on multiplie par 10 et sinon on prend le RESULTAT MAS (pour tous les autres cas)
    ce qui donne
    #”Colonne conditionnelle ajoutée” = Table.AddColumn(#”Personnalisée ajoutée5″, ” resultat MAS 1″, each if [SITESLOT] = 140 then [Resultat Mas] * 10 else [Resultat Mas]).
    Les autres SITESLOT n’étant pas à multiplier, pas besoin de les prendre dans le if (sauf instructions contraires non précisées dans l’énnoncé)
    AjoutResultatMasCorrigé = Table.AddColumn(ModificationTypeDonnees, “ResultatMAS_C”, each if [SITESLOT] = 140 then [RESULTAT MAS] – 10 else if [SITESLOT] = 141 then [RESULTAT MAS] – 25 else [RESULTAT MAS])
    Cordialement
    Daniel

    en réponse à : soustraction dans une colonne #132652
    Daniel
    Participant

    Bonjour hboisteau, Nicolas, le Forum,

    Je peux proposer cette solution, elle aussi sur base d’un index.
    Il suffit de changer le nom des intitulés de colonnes car non fourni dans le petit exemple.

    Début de la requête
    let
    Source = Excel.CurrentWorkbook(){[Name=”tabData”]}[Content],
    ModificationTypeDonnees = Table.TransformColumnTypes(Source,{{“ID”, Int64.Type}, {“Date”, type date}, {“Heure”, type time}, {“Montant”, Int64.Type}}),
    GroupLignesID = Table.Group(#”Type modifié”, {“ID”}, {{“FullTable”, each _, type table [Date=nullable datetime, #”ID”=nullable number, Valeur=nullable number]}}),
    IndexFullTable = Table.TransformColumns(GroupLignesID,{{“FullTable”, each Table.AddIndexColumn(_,”Index”,0,1)}}),
    AddColumnDifference = Table.AddColumn(IndexFullTable, “CalculPrevValue”, each let
    AllDataTable = [FullTable],
    PrevRowValue = Table.AddColumn(
    AllDataTable,”Dif”,
    each try AllDataTable[Montant] {[Index]} – AllDataTable[Montant] {[Index]-1} otherwise null)
    in PrevRowValue),
    DevelopperDifference = Table.ExpandTableColumn(AddColumnDifference, “CalculPrevValue”, {“Date”, “Heure”, “Montant”, “Dif”}, {“Date”, “Heure”, “Montant”, “Dif”}),
    ModificationTypeDonneesFinal = Table.TransformColumnTypes(DevelopperDifference,{{“Heure”, type time}, {“Date”, type date}, {“Montant”, Int64.Type}, {“Dif”, Int64.Type}, {“ID”, type text}}),
    SuppressionColonnes = Table.RemoveColumns(ModificationTypeDonneesFinal,{“FullTable”})

    in
    SuppressionColonnes
    Fin de la requête
    Cordialement
    Daniel

    Daniel
    Participant

    Bonjour cyprien, le Forum,

    J’ai essayé de reproduire sur base de la nomenclature et des données fournies, j’arrive au résultat du tableau “Nomenclature de production multiniveaux”, à toi de vérifier si cela te semble correct et rapide par rapport à l’ensemble de ton jeu de données.
    Je pense que d’autres membres auront aussi des solutions à te proposer.

    Voici le code de ma requête (charger au préalable la table Nomenclature dans une requête)
    let
    Source = Excel.CurrentWorkbook(){[Name=”Qte_Tot”]}[Content],
    ModificationTypeDonnées = Table.TransformColumnTypes(Source,{{“Article”, Int64.Type}, {“Qté totale”, Int64.Type}}),
    AjoutTblNomenclature =
    let
    Step1 = Table.AddColumn(ModificationTypeDonnées, “TblNomenclature”, each Nomenclature),
    Step2 = Table.AddColumn(Step1, “tblNomenclature”, each let Article = [Article] in Table.SelectRows(Nomenclature, each [Article] = Article)),
    Step3 = Table.ColumnNames(Table.Combine(Step2[tblNomenclature])),
    Step4 = Table.SelectColumns(Step2,{“Article”,”Qté totale”,”tblNomenclature”})
    in Step4,
    DeveloppementTblNomenclature = Table.ExpandTableColumn(AjoutTblNomenclature, “tblNomenclature”, {“Composant”, “Quantity”}, {“Composant”, “Quantity”}),
    AjoutQteFinale = Table.AddColumn(DeveloppementTblNomenclature, “Qté finale”, each [Qté totale]*[Quantity]),
    PermutationColonnes = Table.ReorderColumns(AjoutQteFinale,{“Article”, “Composant”, “Qté finale”, “Qté totale”, “Quantity”})
    in
    PermutationColonnes

    fin du code de la requête
    Cordialement

15 sujets de 1 à 15 (sur un total de 98)