Víceřádkové záhlaví dokáže docela potrápit. Představte si, že chcete v Power Query v Excelu nebo v Power BI zpracovat takovouto tabulku. Část záhlaví je v řádku jedna a část v řádku dva. Vy potřebujete oba řádky spojit:

V Power Query se ukáže takto:

Problém je, že záhlaví je ve dvou řádcích, a my ho chceme spojit do jednoho (předpokládejme, že tabulka je hodně široká, takže to nejde "ručně" opakovaným přejmenováním sloupců.

Jak na to? V Power Query se obtížně spojují řádky, ale snadno se spojují sloupce. Takže tabulku transponujeme:

Vyplníme prázdné položky v záhlaví:

Spojíme sloupce ve vhodném pořadí:

Ztransponujeme znovu, tím vrátíme původní layout. Použijeme první řádek záhlaví a je to:

Pozor ovšem na jednu věc. Power Query je limitované počtem 16 384 sloupců, takže tabulku s více řádky na sloupce nepřevedete. Jak si tedy poradit? Prostě "odpojte" záhlaví, proveďte v něm úpravy, a pak ho zase spojte s daty, viz kód.

Záhlaví je zeleně, data modře, výsledek červeně.

  • let
       Source = Excel.Workbook(File.Contents("C:\Users\beran\Desktop\header.xlsx"), null, true),
       original_data = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
       #"Kept First Rows" = Table.FirstN(original_data,2),
       #"Transposed Table" = Table.Transpose(#"Kept First Rows"),
       #"Filled Down" = Table.FillDown(#"Transposed Table",{"Column1"}),
       #"Merged Columns" = Table.CombineColumns(#"Filled Down",{"Column1", "Column2"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
       my_header = Table.Transpose(#"Merged Columns"),
       my_data = Table.Skip(original_data,2),
       final = Table.Combine({my_header,my_data}),
    final_promoted_headers = Table.PromoteHeaders(final, [PromoteAllScalars=true])
    in
       final_promoted_headers

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář