Nástřel dotazu:
// dotaz
let
Zdroj = Excel.CurrentWorkbook(){[Name="data"]}[Content],
#"Seskupené řádky" = Table.Group(Zdroj, {"Column1"}, {{"Tab", each _, type table}}, GroupKind.Local,(x,y)=>if x[Column1] = "Material" and y[Column1] = null then 0 else 1),
#"Filtrované řádky" = Table.SelectRows(#"Seskupené řádky", each ([Column1] = "Material")),
konverze = (Tab as table) =>
let
Material = Table.SelectRows(Tab, each ([Column1] = "Material")),
Vlastní1 = Table.RemoveColumns(Material, List.Select(Table.ColumnNames(Material), each List.NonNullCount(Table.Column(Material, _)) = 0)),
#"Odebrané sloupce" = Table.RemoveColumns(Vlastní1,{"Column1", "Column9"}),
#"Leva strana" = Table.RenameColumns(#"Odebrané sloupce",List.Zip({Table.ColumnNames(#"Odebrané sloupce"), List.Transform({1 .. 4}, each "Sl. " & Text.From(_) ) } ) ),
Data = Table.SelectRows(Tab, each ([Column1] = null)),
#"Odebrané prázdné sloupce" = Table.RemoveColumns(Data, List.Select(Table.ColumnNames(Data), each List.NonNullCount(Table.Column(Data, _)) = 0)),
#"Odebrané prázdné řádky" = Table.SelectRows(#"Odebrané prázdné sloupce", each ([Column2] <> null)),
#"Prava strana" = Table.RenameColumns(#"Odebrané prázdné řádky",List.Zip({Table.ColumnNames(#"Odebrané prázdné řádky"), List.Transform({5 .. 10}, each "Sl. " & Text.From(_) ) } ) ),
#"Přidané: Vlastní" = Table.AddColumn(#"Leva strana", "Vlastní", each #"Prava strana"),
#"Rozbalené Vlastní" = Table.ExpandTableColumn(#"Přidané: Vlastní", "Vlastní", Table.ColumnNames(#"Přidané: Vlastní"[Vlastní]{0}))
in
#"Rozbalené Vlastní",
KonverzeTabulky = Table.TransformColumns(#"Filtrované řádky", {"Tab", konverze} ),
#"Rozbalené Tab" = Table.ExpandTableColumn(KonverzeTabulky, "Tab", Table.ColumnNames(KonverzeTabulky[Tab]{0})),
#"Odebrané sloupce" = Table.RemoveColumns(#"Rozbalené Tab",{"Column1"})
in #"Odebrané sloupce"
Poznámky:
Dotaz čte data z oblasti "Data". (Pokud by se četlo z jiného sešitu, lze číst list).
Table.Group vyhodnocuje data lokálně, to umožňuje rozdělit tabulku na oblasti se stejným materiálem.
Funkce pro konverzi je deklarována v dotazu. (Podobné funkce je většinou snažší napřed naklikat pro jeden řádek, pak změnit na funkci.)
Doplňte si vhodná jména sloupců.citovat