Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Aide compréhension code Power Query

jph34

XLDnaute Nouveau
Bonjour
Dans le bout de code Power Query ci-dessous, j'essaye de comprendre à quoi correspond "Feuil1_Sheet" ains i que [Data]
Est-ce que "Feuil1_Sheet" est juste le nom d'une étape? Et est-ce que [Data] est le nom de la table de la feuille "RECAP_FORM"?


let
Source = Excel.Workbook(File.Contents("C:\Users\toto.xlsx"), null, true),
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],

TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),

Merci
 
Solution
Merci beaucoup Mérinos pour toutes ces informations infos

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour
Est-ce que "Feuil1_Sheet" est juste le nom d'une étape? Et est-ce que [Data] est le nom de la table de la feuille "RECAP_FORM"?

Vous avez tout compris ou presque
Source{[Item="RECAP_FORM",Kind="Sheet"]}
Retourne un enregistrement qui contient un champ (colonne) nommé [Data] qui contient la donnée désirée.
Placez vous sur l'étape "Feuil1_Sheet" supprimez [Data] (gardez la virgule qui suit puis voyez ce qui s'affiche dans l'éditeur : un enregistrement (record) avec un champ nommé "Data".

Remettez [Data] pour retourner à l'état initial de l'étape.

PQ travaille essentiellement avec les tables, liste et enregistrement tout ce qui se trouve entre crochets concerne en général les champs. Ce qui se trouve en accolades {} concerne les items de liste ou table
Source{0} = enregistrement 1 de la table renvoyée par Source
Source{[Item="RECAP_FORM",Kind="Sheet"]} : Sélection de l'enregistrement dont le champs "Item" est = "RECAP_FORM" et le champ "Kind" est égale ) "Sheet"
C'est une sélection de ligne de table donc qui renvoie un enregistrement qui contiendra un champ nommé [Data]
 

merinos-BernardEtang

XLDnaute Accro
Si je prends un query simple:

VB:
let
    Source = Excel.CurrentWorkbook(){[Name="tbl_voiture"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Qui", type text}, {"Voiture", type text}})
in
    #"Changed Type"

on peut le lire comme:

Je défini une table "source" et je met dedans le contenu de la table d'excel "tbl_voiture"

Je défini une table "Changed Type" et je mets dedans le contenu de la table "source" et je change le type de colonne en texte.

mon resultat est la table "Changed Type"
 

jph34

XLDnaute Nouveau
Merci Hasco et Merinos pour toutes ces infos
Voic le début de ma requête

let
Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),

Par contre, j'ai une erreur dès la deuxième étape, je ne comprends pas pourquoi cette étape ne s'appelle pas "Feuil1_Sheet" mais Navigation et surtout j'ai l'erreur ci-dessous que je ne comprends pas du tout!
Y'a t'il une adaptation à faire dans mes données sources qui sont dans l'onglet est "RECAP_FORMS"?
Merci

 

merinos-BernardEtang

XLDnaute Accro
Code:
let
    Source = Excel.Workbook(File.Contents("C:\Users\jXXX\Documents\Training Excel\training given 8.xlsx"), null, true),
    #"Ecrire le temps_Sheet" = Source{[Item="Ecrire le temps",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"Ecrire le temps_Sheet", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"en date ", type datetime}, {"Column3", type any}, {"Column4", type any}, {"en chiffres", type number}, {"Column6", type any}, {"en heures seulement", type datetime}})
in
    #"Changed Type"

je lis:

table source: le fichier excel "training given 8.xlsx"
table "Ecrire le temps_Sheet" basé sur "source" on garde la feuille nommée "Ecrire le temps"
table "Promoted Headers" basé sur "Ecrire le temps_Sheet"...



Ton message d'erreur:
le feuille "RECAP_FORM" existe t'elle encore?
 

merinos-BernardEtang

XLDnaute Accro
j'ai modifié manuellment:

Code:
let
    Source = Excel.Workbook(File.Contents("C:\Users\jpw857\OneDrive - Sibelga\Documents\Training Excel\training given 8.xlsx"), null, true),
    #"Ecrire le stroumpf" = Source{[Item="Ecrire le temps",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"Ecrire le stroumpf", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"en date ", type datetime}, {"Column3", type any}, {"Column4", type any}, {"en chiffres", type number}, {"Column6", type any}, {"en heures seulement", type datetime}})
in
    #"Changed Type"

Cela fonctionne toujours... et l'étape s'appele toujours navigation...


Merinos
 

jph34

XLDnaute Nouveau
Oui la feuille RECAP_FORM exite encore
En fait c'est une personne externe à mon entreprise qui a développé cette requête et j'essaye de l'adapter à l'environnement de mon entreprise
Le code intial qui m'a été envoyé est celui-ci :
let
Source = Excel.Workbook(File.Contents("C:\Users\am\Documents\tutu.xlsx"), null, true),
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),

J'ai donc changé la première ligne puisque le fichier Excel n'est pls à la même source mais il est hébergé sur Sharepoint
J'ai donc remplacé
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
par

let
Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),

J'ai quand même essayé de mettre le lien du SharePoint à l'endroit où j'ai mis le fichier mais j'ai la même erreur,
 

merinos-BernardEtang

XLDnaute Accro
les liens sharepoint sont effectivement une difficulté...

Tu ouvre ton fichier dans l'application excezl.
puis tu prends les info du fichier et tu copie le lien vers le ficheir:


tu obtien un lien web (très moche):
Code:
https://sxxxxxx.sharepoint.com/sites/wp-BNOC133/Documents%20partages/P1_Instrumentation/2.%20Installations/5.%20Mat%C3%A9riel%20Elvaco%20par%20site/05_Sites%20valid%C3%A9s/1050%20Ixelles/1050_STADE.xlsx?web=1

Tu dois effacer la fin du lien : "?web=1"

puis tu peux t'en servir comme source "web"
 

Amilo

XLDnaute Accro
Bonjour à tous,

A tester sous réserve que la feuille "RECAP_FORM" avec les données se trouve dans le même fichier :
Si vous utilisez : Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Vous n'avez plus besoin de la ligne ci-dessous à supprimer :
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],

Si le problème persiste, cliquez sur le bouton "Modifier les paramètres" ou bien "Accéder à l'erreur" du bandeau jaune et sélectionnez la feuille souhaitée.

Cordialement
 
Dernière édition:

jph34

XLDnaute Nouveau
Merci beaucoup Mérinos pour toutes ces informations infos
 

Discussions similaires

Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…