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
1722964097328.png


1722964116721.png


1722964135816.png


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

1722964313060.png


1722964324954.png


1722964352209.png
 

Pièces jointes

  • DoubleRowsToHeader_V012.xlsx
    59.6 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
313 902
Messages
2 103 391
Membres
108 631
dernier inscrit
tarek.kanaan