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

POWERQUERY :: Grouper plusieurs lignes de titre en une SEULE LIGNE

oguruma

XLDnaute Occasionnel
Bonjour,
ce post va certainement rendre de nombreux services aux développeurs débutants en powerquery. Ayant été récemment confronté à ce problème voici la solution.... criticable ? peut-être ?

Exemple de tableaux






Pour cela une fonction
PowerQuery:
let fnMergeRowsToHeader=(
    pSTR_Source as text,
    pINT_NbrRows as number
) =>
    let
        STR_Source=pSTR_Source,
        Source = if STR_Source is table then STR_Source else Excel.CurrentWorkbook(){[Name=STR_Source]}[Content],
        INT_NbrRows=pINT_NbrRows,

        STR_BLANK=" ",
        LST_SourceColumnsNames=Table.ColumnNames( Source),
        TBL_FirstN=Table.FirstN(Source,INT_NbrRows),
        TBL_TableToColumns=Table.ToColumns(TBL_FirstN),
        LST_ColumnsHeaders = List.Transform(TBL_TableToColumns, (x)=> Text.Combine(x,STR_BLANK)),
        TBL_Skip=Table.Skip( Source, INT_NbrRows ),
        TBL_Final = Table.RenameColumns(TBL_Skip, List.Zip({LST_SourceColumnsNames, LST_ColumnsHeaders }))
    in
        TBL_Final
in
    fnMergeRowsToHeader


Utilisation
PowerQuery:
let
    Source = fnMergeRowsToHeader("VENTES",3)
in
    Source
    
let
    Source = fnMergeRowsToHeader("VENTES2",2)
in
    Source
    
let
    Source = fnMergeRowsToHeader("VENTES3",4)
in
    Source

On passe en paramètres la source de données et le nombre de lignes à retenir pour construire le titre de chaque colonne





 

Pièces jointes

  • DoubleRowsToHeader_V012.xlsx
    59.6 KB · Affichages: 5

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…