let
hasTwoDots = (this as text) as logical =>
let
items = Text.Split(this, ".")
in
List.Count(items) = 3,
toTable = (this as table) as nullable table =>
let
rowCount = Table.RowCount(this),
return = if rowCount > 3 then
let
realTable = Table.LastN(this, rowCount - 2),
result = Table.PromoteHeaders(realTable)
in
result
else null
in
return,
source = Excel.Workbook(File.Contents("C:\Users\Desktop\Новая папка\Накладная с ФЗ на Фасовку.xlsx"), false),
withDates = Table.SelectRows(source, each hasTwoDots([Name]) and [Kind] = "Sheet")[[Name],[Data]],
realTables = Table.TransformColumns(withDates, { {"Data", each toTable(_), type table} }),
expanded = Table.ExpandTableColumn(realTables, "Data", {"Наименование продукта", "№ ТФ", "Показания ТФ", "Показания ТФ", "Готовый продукт, кг", "Готовый продукт, кг", "Итого, кг (Готовый продукт)", "Промпереработка, кг", "Разница = показания танка - ГП - промпереработка, кг", "Показания счетчика на линии фасовки, кг", "Показания счетчика на линии фасовки, кг", "Итого, кг (показание счетчика)", "Разница = показания танка - показания счетчика", "Column14"}),
typed = Table.TransformColumnTypes(expanded,{{"Наименование продукта", type text}, {"№ ТФ", type any}, {"Показания ТФ", type any}, {"Показания ТФ", type any}, {"Готовый продукт, кг", type any}, {"Готовый продукт, кг", type any}, {"Итого, кг (Готовый продукт)", type any}, {"Промпереработка, кг", type any}, {"Разница = показания танка - ГП - промпереработка, кг", type any}, {"Показания счетчика на линии фасовки, кг", type any}, {"Показания счетчика на линии фасовки, кг", type any}, {"Итого, кг (показание счетчика)", type any}, {"Разница = показания танка - показания счетчика", type any}, {"Column14", type any}})
return = Table.RenameColumns(typed,{{"Name", "Дата"}})
in
return
|