Accueil – Le CFO masqué › Forums › Power Query › Power Query – Insertion ligne « Vide » dans une table « GroupedBy »
Mots-clés : power query
- Ce sujet contient 8 réponses, 2 participants et a été mis à jour pour la dernière fois par Tibee, le il y a 3 années et 5 mois.
-
AuteurArticles
-
10 mars 2021 à 16 h 24 min #88258TibeeParticipant
Bonjour,
Je suis relativement nouveau dans le monde de power query. Je cherche à modifier une table de données en ajoutant des lignes “vide” dans chacune de mes tables “grouperpar”.
Mon objectif est de créer des “Entêtes” pour chaque type de profil différents en insérant une ligne “vide” avec la valeur correspondant au profil dans la colonne [Profil].
Dans un premier temps, ma requête d’insertion d’une ligne vide me renvoi l’erreur suivante dont je n’arrive pas très bien à en déterminer l’origine:
//Expression.Error : Désolé… Nous n’avons pas pu convertir une valeur de type List en type Number.
Détails :
Value=[List]
Type=[Type] //Auriez-vous des suggestions ?
En vous remerciant,
Thibaud
Attachments:
You must be logged in to view attached files.11 mars 2021 à 3 h 05 min #88262Stéphane LorinParticipantBonjour
Après votre regroupement par le colonne “Profil”, je vous propose de créer une colonne personnalisée avec une nouvelle table contenant uniquement la valeur de la colonne “Profil” puis d’ajouter cette nouvelle table à la table regroupée précédemment
Fonction pour la colonne personnalisée : Table.FromList({_[Profil]},null,{“Profil”})
Pour l’ajout des tables : la fonction Table.Combine ou plus simplement le caractère &Code complet
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Lignes groupées” = Table.Group(Source, {“Profil”}, {{“GroupByProfil”, each _, type table}}),
Table_profil = Table.AddColumn(#”Lignes groupées”, “Table_Profil”, each Table.FromList({_[Profil]},null,{“Profil”})),
Ajout_Table = Table.AddColumn(Table_profil, “Ajout”, each [Table_Profil]&[GroupByProfil])
in
Ajout_TableIl ne reste plus qu’à supprimer les colonnes intermédiaires et à développer la table combinée
Vous pourriez même le faire directement dans le Table.Group en ajoutant devant le each _ la fonction Table.FromRecords
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Lignes groupées” = Table.Group(Source, {“Profil”}, {{“Table Profil”, each Table.FromRecords({[Profil =_[Profil]{0}]})&_, type table }})
in
#”Lignes groupées”Cordialement
Stéphane
15 mars 2021 à 6 h 50 min #88355TibeeParticipantBonjour,
Merci Stéphane, le résultat correspond !
Dans le cas ou je souhaite que la nouvelle table contienne deux colonnes: “Profil” et “Catégorie”, j’ai essayé avec ce code:Table_profil = Table.AddColumn(#”Lignes groupées”, “Table_Profil”,
each Table.FromList({_[Profil],Catégorie= “ST”},
Record.FieldValues,{“Profil”,”Catégorie”})),Cependant les valeurs du tableau sont en “Error”.
Est-ce la bonne méthode ?Bien cordialement
ThibaudAttachments:
You must be logged in to view attached files.15 mars 2021 à 8 h 52 min #88367Stéphane LorinParticipantBonjour
Le plus simple pour ajouter une table avec un champ “Profil” égal au profil en cours et un champ “Catégorie” égal à “ST” est un Table.FromRecordsTable_profil = Table.AddColumn(#”Lignes groupées”, “Table_Profil”,
each Table.FromRecords({[Profil=_[Profil],Catégorie=”ST”]}))Stéphane
19 mars 2021 à 4 h 01 min #88525TibeeParticipantBonjour Stéphane,
Merci,
J’ai essayé de rajouter la valeur _[Type Liste] dans Table.FromRecords sans succès, j’ai une erreur dans ma colonne “Type Liste”.Table_profil = Table.AddColumn(#”Lignes groupées”, “Table_Profil”,
each Table.FromRecords({[Profil=_[Profil],#”Type Liste”=_[Type Liste],Catégorie= “ST”]})),Avez-vous une suggestion?
Thibaud19 mars 2021 à 5 h 03 min #88528Stéphane LorinParticipantBonjour
Je viens de tester votre code Table.FromRecords({[Profil=_[Profil],#”Type Liste”=_[Type Liste],Catégorie= “ST”]}) sur votre fichier du 15 mars sans problème.
Le champ [Type Liste] prends bien la valeur “Liste A”.Ajoutez une pièce jointe au besoin.
Cordialement
Stéphane19 mars 2021 à 6 h 20 min #88530TibeeParticipantCi-joint le fichier.
J’ai cette erreur:
Expression.Error : Désolé… Nous n’avons pas trouvé le champ « Type Liste » de l’enregistrement.
Détails :
Profil=TUBE-219.1*3.2
GroupByProfil=[Table]Attachments:
You must be logged in to view attached files.19 mars 2021 à 8 h 43 min #88532Stéphane LorinParticipantC’est qu’il faut aussi faire le regroupement par “Type Liste” en plus du champ “Profil”
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],#”Type modifié” = Table.TransformColumnTypes(Source,{{“Repère”, Int64.Type}, {“Type Liste”, type text}, {“Ref Affaire”, type text}, {“Catégorie”, type text}, {“Column5”, type any}, {“Profil”, type text}, {“Qté”, Int64.Type}, {“Qualité”, type text}, {“Long. (mm)”, Int64.Type}, {“Surface (m²)”, type number}, {“Poids (kg)”, type number}, {“Pds Tot (kg)”, type number}, {“Désignation”, type text}}),
#”Lignes groupées” = Table.Group(#”Type modifié”, {“Profil”, “Type Liste”}, {{“GroupByProfil”, each _, type table [Repère=nullable number, Type Liste=nullable text, Ref Affaire=nullable text, Catégorie=nullable text, Column5=text, Profil=nullable text, Qté=nullable number, Qualité=nullable text, #”Long. (mm)”=nullable number, #”Surface (m²)”=nullable number, #”Poids (kg)”=nullable number, #”Pds Tot (kg)”=nullable number, Désignation=nullable text]}}),
Table_profil = Table.AddColumn(#”Lignes groupées”, “Table_Profil”,
each Table.FromRecords({[Profil=_[Profil],#”Type Liste”=_[Type Liste],Catégorie= “ST”]})),Ajout_Table = Table.AddColumn(Table_profil, “Ajout”, each [Table_Profil]&[GroupByProfil]),
#”Colonnes supprimées” = Table.RemoveColumns(Ajout_Table,{“Profil”, “GroupByProfil”, “Table_Profil”, “Type Liste”}),
#”Ajout développé” = Table.ExpandTableColumn(#”Colonnes supprimées”, “Ajout”, {“Profil”, “Repère”, “Type Liste”, “Ref Affaire”, “Catégorie”, “Column5”, “Qté”, “Qualité”, “Long. (mm)”, “Surface (m²)”, “Poids (kg)”, “Pds Tot (kg)”, “Désignation”}, {“Profil.1”, “Repère”, “Type Liste”, “Ref Affaire”, “Catégorie”, “Column5”, “Qté”, “Qualité”, “Long. (mm)”, “Surface (m²)”, “Poids (kg)”, “Pds Tot (kg)”, “Désignation”})
in
#”Ajout développé”Stéphane
24 mars 2021 à 13 h 14 min #88700TibeeParticipantEffectivement,
C’est compris. Merci pour vos réponses.Thibaud
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.