|
В ближайшую неделю день рождения празднуют: Голосование: Глобальные перспективы экономики РФ и стран ЕС, ваш прогноз.
|
Создание полного перечня пересечения объектов в Excel с помощью операции CrossJoinСтатья была опубликована в журнале «Справочник экономиста» № 11 ноябрь 2018.
Все права защищены. Воспроизведение, последующее распространение, сообщение в эфир или по кабелю, доведение до всеобщего сведения статей с сайта разрешается правообладателем только с обязательной ссылкой на печатное СМИ с указанием его названия, номера и года выпуска. Рассмотрим приемы, с помощью которых можно создать полный перечень пересечения объектов в Excel (т. е. выполнить операциюи CrossJoin). Предложим три варианта: 1) с использованием формул СТРОКА(), ОКРУГЛВВЕРХ(), ОСТАТ(), ИНДЕКС(); 2) с помощью инструментов интерфейса Power Query; 3) с помощью DAX-запросов к таблицам в модели данных Power Pivot.
Периодически в Excel необходимо создать полный перечень пересечения объектов, например в случаях, когда мы хотим создать шаблон отчета либо правильно рассчитать метрики. Рассмотрим простой пример. Имеем выгрузку продаж в кг за день по категории «Молочная продукция» в пяти магазинах (рис. 1). При этом у нас есть пять магазинов — таблица «Магазин» и пять единиц товаров — таблица «Товар». Количество строк в отчете «Выгрузка» — 23, а полное пересечение магазинов и товаров — 25 строк (5 магазинов × 5 товаров). Это значит, что два товара в нашем случае имеют нулевые продажи за день, поэтому не попали в выгрузку. Для магазина «Купеческий» нет категории «Молоко», для магазина «Фестивальный» — позиции «Йогурт». Допустим, мы хотим определить среднее количество продаж в кг на одну категорию. Для этого мы можем воспользоваться сводной таблицей и определить текущее среднее значение продаж кг на один товар. Построим сводную таблицу, поместив в область строк поле «Магазин», в поле значений — Сумму по полю Продажи, кг, Среднее по полю продажи, кг, Количество по полю Продажи, кг (рис. 2). Первый столбец значений — «Сумма» — показывает сумму проданных килограммов, а столбец «Количество» — количество категорий. Средним в сводной таблице является отношение суммы к количеству. Мы знаем, что в нашей таблице перечислены не все категории, которые продавались в магазине, а значит, среднее значение по магазинам «Купеческий» и «Фестивальный» завышены. Чтобы рассчитать среднее относительно всех категорий, нам необходимо сумму продаж разделить на пять (полное количество категорий) — столбец «Правильное среднее»на рис. 2. Столбец «Отношение» на рис. 2 — это разница между столбцом «Правильное среднее» и «Среднее по полю продажи». Как мы убедились на данном примере, для верного расчета среднего нам необходимо полное пересечение магазинов и товаров, включая те товары, по которым продажи были равны нулю. Полный перечень пересечений также называется операцией CROSSJOIN. Способ 1 CrossJoin двух объектов с помощью формул Мы знаем, что нам нужно создать полный список пересечений магазинов и товаров и у нас есть пять магазинов и пять товаров. Полный перечень — это всегда произведение уникальных значений каждого объекта. В нашем случае это 25 (рис. 3). Если бы надо было добавить еще пять дней к перечню, то перечень состоял бы из 25 × 5 = 125 строк и т. д. Порядок расчета: 1. Начиная с ячейки A2 пронумеруем строки от 1 до 25. Автор использует формулу: =СТРОКА()–1 Функция СТРОКА() возвращает порядковый номер текущей строки. 2. В столбце B указан порядковый номер магазина. Нам необходимо сделать так, чтобы для порядковых номеров столбца А 1–5 был указан номер 1, для порядковых номеров 2–10 — номер 2 и т. д. Для этого запишем в ячейку B2 формулу: =ОКРУГЛВВЕРХ(A2/5;0) Функция ОКРУГЛВВЕРХ() округляет число до ближайшего сверху с заданной точностью. Мы делим число в столбце А на 5 и округляем до целого. 3. В столбце C указан порядковый номер товара. Нам необходимо сделать так, чтобы в данном столбце цифры от 1 до 5 шли в хронологическом порядке, возвращаясь после пяти к единице и т. д. Для этого запишем в ячейку C2 формулу: =ЕСЛИ(ОСТАТ(A2;5)=0;5;ОСТАТ(A2;5)) Функция ОСТАТ() возвращает остаток от деления (в нашем случае — деления на 5). Если остаток равен нулю, то возвращает 5. 4. Теперь мы имеем порядковые номера магазинов — столбец B и порядковые номера товаров — столбец C. Чтобы добавить магазины в столбец D, воспользуемся функцией ИНДЕКС(). Для подстановки магазинов в столбце D функция будет выглядеть следующим образом: =ИНДЕКС(Магазины;B2) Для подстановки товаров в столбце E: =ИНДЕКС(Товары;B2) Столбцы D и E — это тот результат, к которому мы хотели прийти. Чтобы подставить продажи из первоначальной таблицы, можно воспользоваться функцией ВПР() по связке столбцов либо СУММЕСЛИМН(), где условиями будут «Магазины» и «Товары». |
|
Для связи: box@buhgalter-info.ru | Реклама на сайте | Пользовательское соглашение | Политика конфиденциальности
© 2006—2024, ООО «Профессиональное издательство» — издательство журнала «Справочник экономиста». Воспроизведение, последующее распространение, сообщение в эфир или по кабелю, доведение до всеобщего сведения материалов с сайта разрешается правообладателем только с указанием гиперссылки на данный сайт, если не указано иное. |