oguruma
XLDnaute Occasionnel
En préambule ça complète ceci : https://excel-downloads.com/threads...onnes-dune-table-plusieurs-methodes.20080797/
Ce post est une variante de celui-ci :
excel-downloads.com
En effet les données sont à l'extérieur du classeur. Donc très pratique, on va cherche les données à l'extérieur, on les importe et on les retravaille.
On passe donc par une requête intermédiaire qui va aller collecter les données externes.
Requête TbData, bien entendu elle s'appuie sur les tables de paramètres chargées.
Puis une fois la table externe chargée on peut la retravailler via une requête PIVOT
Pour plus d'explications voir les fichiers joints
- Challenge : jouer avec ces paramètres pour construire ces fonctions
Les codes sources ont été livrés dans d'autres Post
Pour le paramétrage complémentaire nécessaire, passer par un fichier au format "win.ini" afin de mettre en pratique le post mettant en oeuvre ces types de fichiers
Les compléments et autres fonctions se trouvent ici : https://excel-downloads.com/threads...chiers-csv-ou-des-fichiers-excel-v2.20081238/
Ce post est une variante de celui-ci :
POWERQUERY :: Renommage statique de colonnes - sélection de colonnes - données internes au classeur Excel
POWERQUERY :: Renommage statique de colonnes - sélection de colonnes - données internes au classeur Excel
Bonjour, En préambule ça complète ceci : https://excel-downloads.com/threads/powerquery-renommer-les-colonnes-dune-table-plusieurs-methodes.20080797/ La cible : à partir de ces données dans le classeur obtenir On peut constater que les colonnes ont été renommées et certaines (pas toutes)...
En effet les données sont à l'extérieur du classeur. Donc très pratique, on va cherche les données à l'extérieur, on les importe et on les retravaille.
On passe donc par une requête intermédiaire qui va aller collecter les données externes.
Requête TbData, bien entendu elle s'appuie sur les tables de paramètres chargées.
PowerQuery:
let
//---------------------------------------------------------------------------------------
// On récupère le chemin d'accès aux données
//---------------------------------------------------------------------------------------
TbDataPath=try fnGetParameter(TB_PARAMS_GENRAUX,"TB_DATA_PATH")
otherwise fnGetParameter("TB_PARAMS_GENRAUX","TB_DATA_PATH"),
//---------------------------------------------------------------------------------------
// Type de source ? Table ? Feuille ?
//---------------------------------------------------------------------------------------
TbKind=try fnGetParameter(TB_PARAMS_GENRAUX,"TB_DATA_KIND")
otherwise fnGetParameter("TB_PARAMS_GENRAUX","TB_DATA_KIND"),
//---------------------------------------------------------------------------------------
// Nom de l'objet
//---------------------------------------------------------------------------------------
TbItem=try fnGetParameter(TB_PARAMS_GENRAUX,"TB_DATA_ITEM")
otherwise fnGetParameter("TB_PARAMS_GENRAUX","TB_DATA_ITEM"),
//---------------------------------------------------------------------------------------
// Paramètre pour promote des titres
//---------------------------------------------------------------------------------------
IsPromote=try fnGetParameter(TB_PARAMS_GENRAUX,"PROMOTE")
otherwise fnGetParameter("TB_PARAMS_GENRAUX","PROMOTE"),
//---------------------------------------------------------------------------------------
// Chargement des données
//---------------------------------------------------------------------------------------
Source = Excel.Workbook(File.Contents(TbDataPath), null, true),
//---------------------------------------------------------------------------------------
// Et si c'est une feuille on promote les titres de colonnes
//---------------------------------------------------------------------------------------
ToTable = Source{[Item=TbItem,Kind=TbKind]}[Data],
ToPromote = if TbKind ="Table" then
ToTable
else if IsPromote = "OUI" then
Table.PromoteHeaders(ToTable, [PromoteAllScalars=true])
else ToTable
in
ToPromote
Puis une fois la table externe chargée on peut la retravailler via une requête PIVOT
PowerQuery:
let
//---------------------------------------------------------------------------------------
// Requête pivot pour chager les données à traiter
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
// Lecture des paramètres
// La table est soit dans l'environnement PowerQuery soit dans une table Excel (TS)
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
// Chargement des données - chemin lu à partir de la table des paramètres
//---------------------------------------------------------------------------------------
Source = try Excel.CurrentWorkbook(){[Name=TbData]}[Content]
otherwise try TbData // si la table n'existe pas on renvoie une vide
otherwise #table({},{}),
//---------------------------------------------------------------------------------------
// Quelles sont les colonnes à conserver ?
// MissingField.Ignore : pour éviter que la requête plante si les colonnes sont inconnues
//---------------------------------------------------------------------------------------
SourceKeep = try Table.SelectColumns(Source,ListSelectColumns,MissingField.Ignore)
otherwise #table({},{}),
//---------------------------------------------------------------------------------------
// Renommage des colonnes
//---------------------------------------------------------------------------------------
ToTableRename = try Table.RenameColumns(SourceKeep,ListRenameColumns,MissingField.Ignore)
otherwise #table({},{})
in
ToTableRename
Pour plus d'explications voir les fichiers joints
- Challenge : jouer avec ces paramètres pour construire ces fonctions
Les codes sources ont été livrés dans d'autres Post
Pour le paramétrage complémentaire nécessaire, passer par un fichier au format "win.ini" afin de mettre en pratique le post mettant en oeuvre ces types de fichiers
Les compléments et autres fonctions se trouvent ici : https://excel-downloads.com/threads...chiers-csv-ou-des-fichiers-excel-v2.20081238/
- La gestion « à la volée » des types de colonnes à l’issue de l’importation
Pièces jointes
Dernière édition: