Toutes mes réponses sur les forums
-
AuteurArticles
-
DanielParticipant
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êteAttachments:
You must be logged in to view attached files.DanielParticipantBonjour 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
GoupRunningTotalList2 – 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
DanielAttachments:
You must be logged in to view attached files.DanielParticipantBonjour 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
DanielDanielParticipantBonjour 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
DanielAttachments:
You must be logged in to view attached files.13 janvier 2024 à 11 h 29 min en réponse à : Ajout colonne Horodatage – Valeur de la dernière ligne. #136206DanielParticipantBonjour 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
DanielAttachments:
You must be logged in to view attached files.DanielParticipantBonjour 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
SuppressionColonnesFeuil1 : 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 maxCordialement
DanielAttachments:
You must be logged in to view attached files.12 janvier 2024 à 9 h 43 min en réponse à : Ajout colonne Horodatage – Valeur de la dernière ligne. #136158DanielParticipantBonjour 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
SuppressionDerniereLignetabData 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° FactureEn espérant avoir pu t’apporter un peu d’aide.
Cordialement
DanielDanielParticipantBonjour 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
DanielDanielParticipantBonjour 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
DanielAttachments:
You must be logged in to view attached files.2 octobre 2023 à 17 h 32 min en réponse à : Power Query – Colonne au format Texte en Date(mois) #133014DanielParticipantBonjour 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
ModificationTypeDonneesSolution 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
Daniel27 septembre 2023 à 11 h 09 min en réponse à : Eclater une nomenclature multiniveaux (enfants avec multi-parents) Power BI #132827DanielParticipantBonjour 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
DanielAttachments:
You must be logged in to view attached files.DanielParticipantBonjour 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
DanielAttachments:
You must be logged in to view attached files.DanielParticipantBonjour 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
DanielDanielParticipantBonjour 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
Daniel22 septembre 2023 à 12 h 50 min en réponse à : Eclater une nomenclature multiniveaux (enfants avec multi-parents) Power BI #132640DanielParticipantBonjour 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
PermutationColonnesfin du code de la requête
Cordialement -
AuteurArticles