Помогите, пожалуйста, правильно сгруппировать данные в отдельной таблице из нескольких.
В примере в закладке "Условие" есть 4 таблицы. В каждой наименование определенного перечня продукции и количество этого товара, которое было продано за отчетный период. Во всех 4-х таблицах есть как товары, которые продавались на протяжении всех 4-х месяцев, так и товары, которые продавались 1 или 2 или 3 месяца. Количество товаров в каждой таблице разное.
Прошу помочь и объяснить как можно в закладке "Решение" включить в итоговую таблицу только те товары, которые продавались в каждом из четырех месяцев. Очередность выстраивания товара - начинать сверху вниз от самого продаваемого по сумме 4 месяцев товара до самого мало продаваемого по сумме 4 месяцев внизу списка.
Заранее большое спасибо!
Добрый день!
Помогите, пожалуйста, правильно сгруппировать данные в отдельной таблице из нескольких.
В примере в закладке "Условие" есть 4 таблицы. В каждой наименование определенного перечня продукции и количество этого товара, которое было продано за отчетный период. Во всех 4-х таблицах есть как товары, которые продавались на протяжении всех 4-х месяцев, так и товары, которые продавались 1 или 2 или 3 месяца. Количество товаров в каждой таблице разное.
Прошу помочь и объяснить как можно в закладке "Решение" включить в итоговую таблицу только те товары, которые продавались в каждом из четырех месяцев. Очередность выстраивания товара - начинать сверху вниз от самого продаваемого по сумме 4 месяцев товара до самого мало продаваемого по сумме 4 месяцев внизу списка.
Вариант с консолидацией данных. Данные -- Консолидация. Выводим все значения, затем формулой выбираем нужные, фильтруем, сортируем Второй вариант через Power Query
Вариант с консолидацией данных. Данные -- Консолидация. Выводим все значения, затем формулой выбираем нужные, фильтруем, сортируем Второй вариант через Power QueryPelena
msi2102, большое спасибо за ваш вариант решения вопроса. Немного надо еще повозится, чтобы удалить строки с пустыми значениями в разных периодах. Но в целом все работает, спасибо!
msi2102, большое спасибо за ваш вариант решения вопроса. Немного надо еще повозится, чтобы удалить строки с пустыми значениями в разных периодах. Но в целом все работает, спасибо!dimakissel2018
Pelena, огромное спасибо за оба варианта! Пробую сейчас консодидацию. На практике у меня сейчас в работе 4 массива с суммарно 36 тыс позициями для обработки. Спасибо за помощь!
Pelena, огромное спасибо за оба варианта! Пробую сейчас консодидацию. На практике у меня сейчас в работе 4 массива с суммарно 36 тыс позициями для обработки. Спасибо за помощь!dimakissel2018
Пользуясь интересным случаем, предложу своё решение на новомодных функциях. Конечно, для версии Excel 2010 это еще далеко завтрашний день, но когда-то надо начинать хотя бы знакомиться, чтобы когда-нибудь успеть. Я сам еще только учусь их использовать, поэтому, возможно, решение далеко от идеала, доступного для этих функций, но будем стремиться. Ведь идея решить всю задачу формулой в одной ячейке сама по себе достаточна заманчива.
Мега-формула разработана в веб-версии Excel и предназначена для помещения в ячейку B6 листа "Решение". При проектировании подобных формул довольно насущно встает вопрос представления их текста в удобоваримом формате (даже представить отказываюсь такую формулу, введенную в ячейку в виде традиционной длинной строки, без форматирующих пробелов и переводов строк). Поэтому использую тэг VBA для ее прозрачного представления здесь. К сожалению, при этом нельзя использовать мгновенное переключение между языками функций, но параллельные имена функций всегда можно узнать из Интернета (если это потребуется англоязычному читателю Форума).
[vba]
Код
=LET( comm1; "исходные диапазоны месяцев - из двух колонок"; январь; Условие!E5:F18; февраль; Условие!H5:I23; март; Условие!K5:L22; апрель; Условие!N5:O19;
comm2; "диапазоны месяцев с добавленным номером месяца - в третьей колонке"; янвРазв; РАЗВЕРНУТЬ(январь;;3;1); февРазв; РАЗВЕРНУТЬ(февраль;;3;2); марРазв; РАЗВЕРНУТЬ(март;;3;3); апрРазв; РАЗВЕРНУТЬ(апрель;;3;4);
comm3; "уникальные сочетания наименования и номера месяца"; уник; УНИК(ГСТОЛБИК(ИНДЕКС(всеМес;0;1);ИНДЕКС(всеМес;0;3))); count; MAP(уникИмя; LAMBDA(cell; СЧЁТЗ(ФИЛЬТР(ИНДЕКС(уник;0;1);ИНДЕКС(уник;0;1)=cell))));
comm4; "в скольки месяцах встречается каждое наименование? оставляем те, которые во всех 4-х"; счет; ГСТОЛБИК(уникИмя; count); счет4; ФИЛЬТР(ИНДЕКС(счет;0;1);ИНДЕКС(счет;0;2)=4);
comm5; "вычисление общих сумм для оставшихся наименований и сортировка по убыванию"; summa; MAP(счет4; LAMBDA(cell; СУММ(ФИЛЬТР(ИНДЕКС(всеМес;0;2);ИНДЕКС(всеМес;0;1)=cell)))); итог; СОРТ(ГСТОЛБИК(счет4; summa);2;-1);
Пользуясь интересным случаем, предложу своё решение на новомодных функциях. Конечно, для версии Excel 2010 это еще далеко завтрашний день, но когда-то надо начинать хотя бы знакомиться, чтобы когда-нибудь успеть. Я сам еще только учусь их использовать, поэтому, возможно, решение далеко от идеала, доступного для этих функций, но будем стремиться. Ведь идея решить всю задачу формулой в одной ячейке сама по себе достаточна заманчива.
Мега-формула разработана в веб-версии Excel и предназначена для помещения в ячейку B6 листа "Решение". При проектировании подобных формул довольно насущно встает вопрос представления их текста в удобоваримом формате (даже представить отказываюсь такую формулу, введенную в ячейку в виде традиционной длинной строки, без форматирующих пробелов и переводов строк). Поэтому использую тэг VBA для ее прозрачного представления здесь. К сожалению, при этом нельзя использовать мгновенное переключение между языками функций, но параллельные имена функций всегда можно узнать из Интернета (если это потребуется англоязычному читателю Форума).
[vba]
Код
=LET( comm1; "исходные диапазоны месяцев - из двух колонок"; январь; Условие!E5:F18; февраль; Условие!H5:I23; март; Условие!K5:L22; апрель; Условие!N5:O19;
comm2; "диапазоны месяцев с добавленным номером месяца - в третьей колонке"; янвРазв; РАЗВЕРНУТЬ(январь;;3;1); февРазв; РАЗВЕРНУТЬ(февраль;;3;2); марРазв; РАЗВЕРНУТЬ(март;;3;3); апрРазв; РАЗВЕРНУТЬ(апрель;;3;4);
comm3; "уникальные сочетания наименования и номера месяца"; уник; УНИК(ГСТОЛБИК(ИНДЕКС(всеМес;0;1);ИНДЕКС(всеМес;0;3))); count; MAP(уникИмя; LAMBDA(cell; СЧЁТЗ(ФИЛЬТР(ИНДЕКС(уник;0;1);ИНДЕКС(уник;0;1)=cell))));
comm4; "в скольки месяцах встречается каждое наименование? оставляем те, которые во всех 4-х"; счет; ГСТОЛБИК(уникИмя; count); счет4; ФИЛЬТР(ИНДЕКС(счет;0;1);ИНДЕКС(счет;0;2)=4);
comm5; "вычисление общих сумм для оставшихся наименований и сортировка по убыванию"; summa; MAP(счет4; LAMBDA(cell; СУММ(ФИЛЬТР(ИНДЕКС(всеМес;0;2);ИНДЕКС(всеМес;0;1)=cell)))); итог; СОРТ(ГСТОЛБИК(счет4; summa);2;-1);