IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

informer

Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select

Noter ce billet
par , 12/04/2025 à 17h17 (336 Affichages)
Objectif
En une seule étape, afficher la table avec la colonne [Name] et toutes les colonnes commençant par [col]

Id Col1 Col2 Col3

Data
Fichier Excel avec les colonnes suivantes

Id Col1 Col2 Col3 Valeur Commentaire


Code

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
let
    Source = Excel.Workbook(File.Contents("C:\source.xlsx"), null, true),
    Data_Table = Source{[Item="Data",Kind="Table"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Data_Table,{{"Name", type text}, {"Col1", type text}, {"Col2", type any}, {"Col3", type any}, {"Valeur", type text}, {"Commentaire", type text}}),
    #"Remove list col" = 
        let listCol = Table.ColumnNames( #"Changed Type"),
            tblColName = Table.FromList(listCol,null),
            tblColNameSelection = Table.SelectRows(tblColName, each [Column1] = "Name" or Text.StartsWith([Column1], "Col")),
            lstColNameSelection = tblColNameSelection[Column1],
            tblFinal = Table.SelectColumns(#"Changed Type",lstColNameSelection)
        in #"tblFinal"
in
   #"Remove list col"

Analysons l'étape #"Remove list col" qui répond à l'objectif

  • let => obligatoire si une étape est composée de plus d'une commande
    • .

  • listCol = Table.ColumnNames( #"Changed Type"),
    • Donne la liste des colonnes d'une table donnée en paramètre dans un objet List à 1 colonne

  • tblColName = Table.FromList(listCol,null),
    • Transforme une liste en table dans l'objectif de faire une sélection des lignes dont la valeur commence par [col]. Cette méthode n'existe pas pour un objet List.
    • Null car il n'y a qu'une seule colonne donc pas de séparateur pour identifier la fin d'une colonne

  • tblColNameSelection = Table.SelectRows(tblColName, each [Column1] = "Name" or Text.StartsWith([Column1], "Col")),
    • Sélection des lignes dont la valeur commence par [col] ou égale à [Name]
    • Permis car tblColName passé en paramètre est un objet table
    • Astuce : Pour obtenir le code, créer cette opération comme l'étape suivante à tblColName. il faut donc que tblColName soit en sortie => in tblColName

  • lstColNameSelection = tblColNameSelection[Column1],
    • Transforme l'unique colonne de la table tblColNameSelection en objet List.
      La méthode est NomTable[NomColonne]

  • tblFinal = Table.SelectColumns(#"Changed Type",lstColNameSelection)
    • Sélection des colonnes à afficher (Conserver) en sortie du traitement

  • in #"tblFinal"
    • Indique la source en sortie



Source
chaine goodly


C'est maintenant Ta Minute M

Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Viadeo Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Twitter Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Google Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Facebook Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Digg Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Delicious Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog MySpace Envoyer le billet « Ma Minute M - Garder que les colonnes ayant le même prefixe : Table.FromList+ SelectRows + Select » dans le blog Yahoo

Commentaires

  1. Avatar de arnkto
    • |
    • permalink
    Merci pour le partage