Добрый день! Ребята, помогите мне, плииз. У меня есть таблица (лист "Расчет Р")с перечнем, например цветов, а дальше идут колонки с названием магазина, в которых отражено количество. Не все строки в колонках магазина заполняются. Перечень цветов тоже может изменяться. Мне нужно создать новый лист (лист "Отчет"), где будет копироваться название магазина и под ним будут наименования цветов, но только тех, по которым есть количественный показатель (т.е. не должен отражаться весь список наименований цветов) и далее (через пустую строчку) следующий магазин. Я не программист. Обычно работаю с формулами и учусь писать простейшие макросы по книгам. А вот с этим не получается. Пробовала циклом For To. Не получается создать наименования, так чтобы они не копировались друг на друга. И потом непонятно как делать саму выборку количества со смещением по колонкам. Пробовала через "окно" выборки, где выбираешь магазин - тоже успеха мало.
Добрый день! Ребята, помогите мне, плииз. У меня есть таблица (лист "Расчет Р")с перечнем, например цветов, а дальше идут колонки с названием магазина, в которых отражено количество. Не все строки в колонках магазина заполняются. Перечень цветов тоже может изменяться. Мне нужно создать новый лист (лист "Отчет"), где будет копироваться название магазина и под ним будут наименования цветов, но только тех, по которым есть количественный показатель (т.е. не должен отражаться весь список наименований цветов) и далее (через пустую строчку) следующий магазин. Я не программист. Обычно работаю с формулами и учусь писать простейшие макросы по книгам. А вот с этим не получается. Пробовала циклом For To. Не получается создать наименования, так чтобы они не копировались друг на друга. И потом непонятно как делать саму выборку количества со смещением по колонкам. Пробовала через "окно" выборки, где выбираешь магазин - тоже успеха мало.Таника
Добрый день. Решение на PowerQuery, правда не универсальное, опирается на названия магазинов. Если количество магазинов много больше или может изменяться, то запрос надо будет допиливать.
[vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"пп", Int64.Type}, {"Наименование", type text}, {"Получено всего", Int64.Type}, {"Магазин 1", Int64.Type}, {"Магазин 2", Int64.Type}, {"Остаток", Int64.Type}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Наименование", "Магазин 1", "Магазин 2"}), #"Несвернутые столбцы" = Table.UnpivotOtherColumns(#"Другие удаленные столбцы", {"Наименование"}, "Атрибут", "Значение"), #"Добавленный префикс" = Table.TransformColumns(#"Несвернутые столбцы", {{"Наименование", each "|" & _, type text}}), #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Добавленный префикс", {{"Значение", type text}}, "ru-RU"),{"Наименование", "Значение"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Наименование"), l= List.Combine({{"1|Магазин1|"},Table.SelectRows(#"Объединенные столбцы", each ([Атрибут] = "Магазин 1"))[Наименование],{"2|Магазин2|"},Table.SelectRows(#"Объединенные столбцы", each ([Атрибут] = "Магазин 2"))[Наименование]}), #"Преобразовано в таблицу" = Table.FromList(l, Splitter.SplitTextByDelimiter("|"), {" ", "Наименование", "Количество"}, null, ExtraValues.Error), #"Измененный тип1" = Table.TransformColumnTypes(#"Преобразовано в таблицу",{{" ", Int64.Type}, {"Наименование", type text}, {"Количество", Int64.Type}}) in #"Измененный тип1"
[/vba]
Добрый день. Решение на PowerQuery, правда не универсальное, опирается на названия магазинов. Если количество магазинов много больше или может изменяться, то запрос надо будет допиливать.
[vba]
Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"пп", Int64.Type}, {"Наименование", type text}, {"Получено всего", Int64.Type}, {"Магазин 1", Int64.Type}, {"Магазин 2", Int64.Type}, {"Остаток", Int64.Type}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Наименование", "Магазин 1", "Магазин 2"}), #"Несвернутые столбцы" = Table.UnpivotOtherColumns(#"Другие удаленные столбцы", {"Наименование"}, "Атрибут", "Значение"), #"Добавленный префикс" = Table.TransformColumns(#"Несвернутые столбцы", {{"Наименование", each "|" & _, type text}}), #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Добавленный префикс", {{"Значение", type text}}, "ru-RU"),{"Наименование", "Значение"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Наименование"), l= List.Combine({{"1|Магазин1|"},Table.SelectRows(#"Объединенные столбцы", each ([Атрибут] = "Магазин 1"))[Наименование],{"2|Магазин2|"},Table.SelectRows(#"Объединенные столбцы", each ([Атрибут] = "Магазин 2"))[Наименование]}), #"Преобразовано в таблицу" = Table.FromList(l, Splitter.SplitTextByDelimiter("|"), {" ", "Наименование", "Количество"}, null, ExtraValues.Error), #"Измененный тип1" = Table.TransformColumnTypes(#"Преобразовано в таблицу",{{" ", Int64.Type}, {"Наименование", type text}, {"Количество", Int64.Type}}) in #"Измененный тип1"