Re,
voici une tentative d'explication de l'étape :
Table.RenameColumns(Source, let Noms = List.Range(Table.ColumnNames(Source),2) in
List.Zip({ Noms, List.Transform(Noms,each Text.Start(_,10) & "-" & Record.Field(Source{0},_))}))
Il faut garder en tête que Power query travaille beaucoup sur les listes.
Table.RenameColumns attends en deuxième argument une liste de listes :
Table.RenameColumns(#"Type modifié",{{"Column1", "Nom1"},{"Column2", "Nom2"}})
Chaque sous liste contenant un
nom actuel de colonne et
nouveau nom a lui attribuer
Pour nous les noms à changer sont tous ceux de la table SAUF les deux premiers, ce que nous donne :
List.Range(Table.ColumnNames(Source),2) et qui servira comme liste des
noms actuels
Les
nouveaux noms devront se présenter sous la forme "date" (de l'ancien nom) et soit "objectif" soit "réalisé", valeurs extraites de la première ligne de la table brute de transformation.
Cette liste de
nouveaux noms est obtenue par transformation de la liste des
noms actuels en une nouvelle liste :
List.Transform(
Noms ,each Text.Start(_,10) & "-" & Record.Field(Source{0},_))
Qui peut se lire : pour chaque item de la liste des noms actuels, prend les 10 premiers caractères ajoute un tiret et la valeur correspondante de la première ligne de la source.
Valeur correspondante qui s'obtient pas 'Record.Field(Source{0},_)' où '_' est l'item parcouru de la liste des noms actuel et Source{0} est la première ligne de donnée de l'étape Source.
Une fois obtenues nos deux listes de noms List.Zip les compressera en une liste de sous-listes :
{
{Nom actuel 1,
Nouveau nom 1} ,
{Nom actuel 2, Nouveau nom 2} ,
{Nom actuel 3, Nouveau nom 3}
}
C'est une étape qu'il faut écrire manuellement dans la barre de formule de PQ ou dans l'éditeur avancé.
Voici ce que je peux vous dire. N'hésitez pas en cas de besoin d'information complémentaire sur un point particulier.
Dans le fichier joint vous verrez une méthode (RQ_Datas (2)) faite par l'interface mais en plus d'étapes.
L'étape 'Noms' a été modifiée dans la barre de formule pour ajouter le List.Zip
Cordialement