Группировка в сводных таблицах
После создания сводной таблицы иногда бывает удобно и полезно сгруппировать данные в интересующем нас диапазоне и с нужным шагом. При группировке возможны несколько вариантов. Рассмотрим для затравки вот такую таблицу в качестве источника данных:
Одна строка в этой базе данных — одна продажа, т.е. полностью описывает одну сделку (что, когда и по какой цене).
Пример 1. Группировка чисел
Необходимо построить отчет, из которого было бы понятно — на каких именно товарах (дешевых или дорогих) мы делаем основной оборот. Для начала строим обычную сводную таблицу, поместив в область строк поле Цена, в область данных — Сумма заказа:
Теперь щелкаем правой кнопкой мыши по цене (область строк) и выбираем из контекстного меню команду Группировать (Group). В Excel 2000-2003 эта команда находится в разделе Группа и структура (Group and Show Detail) контекстного меню:
В итоге появится наш основной инструмент — диалоговое окно группировки данных в сводной таблице:
В окне можно задать начальное и конечное значение интересующего нас интервала и шаг изменения. Особое внимание хочу обратить на флажки слева от слов «начиная с» и «по» — эти флажки относятся к слову «Авто» и означают, что Excel будет сам выбирать интервал (дизайнеру окна напинать бы за такой user-friendly интерфейс сами знаете что). Для определенности введем начальное значение равное нулю, конечное 270 (самый дорогой наш товар стоит 263,5$) и зададим шаг 30, т.е. окно должно выглядеть так:
После нажатия на ОК Excel сгруппирует товары с ценами в заданном интервале и посчитает суммарную выручку по каждому интервалу:
Теперь ясно видно, что (в данном примере) наибольшую выручку нам дают товары с ценой до 60 долларов. «Хочешь быть богатым — работай для бедных!» как говорил Рональд Макдональд.
Пример 2. Группировка дат
Необходимо подсчитать суммарную выручку за каждый месяц (квартал) 2006 года, используя данные из нашей исходной таблицы.
Строим простую сводную, поместив Дату заказа в область строк, а Стоимость заказа в область данных:
Даты в сводной таблице получаются по умолчанию с тем же шагом, что и был в исходной, т.е. с шагом в один день. Щелкаем по любой дате правой кнопкой мыши и выбираем команду Группировать (Group). В появившемся окне группировки задаем следующие параметры:
После нажатия на ОК Excel сгруппирует даты с шагом месяцы и кварталы и мы получим вот такой красивый отчет:
Пример 3. Произвольная группировка
На самом деле группировать в сводных таблицах можно практически все, а не только числа или текст, как это может показаться после двух предыдущих примеров. Группировка может быть совершенно произвольной и производиться даже с текстовыми данными. Если выделить в сводной таблице несколько значений в области строк или столбцов и щелкнуть по ним правой кнопкой мыши, то можно воспользоваться командой группировки также, как и в предыдущих примерах:
… и сгруппировать товары (предварительно перетащив их мышью в сводной таблице в соседние строки) в одну кучку:
Созданной группе можно легко присвоить любое имя, просто введя его с клавиатуры:
Ссылки по теме
- Что такое сводные таблицы, как их создавать
- Настройка вычислений в сводных таблицах
- Построение сводной по нескольким диапазонам данных с разных листов
- Независимая группировка сводных таблиц
Одна из наиболее полезных функций сводных таблиц — возможность комбинировать элементы в группах. Группировка элементов проста: выделите их и выполните команду Работа со сводными таблицами ► Параметры ► Группировать ► Группа по выделенному.
Но вы можете сделать еще один шаг вперед. Если поле содержит даты, Excel способен создавать группы автоматически. Многие пользователи упускают эту полезную функцию. На рис. 171.1 показана часть таблицы, в которой есть два столбца с данными: Дата и Продажи. Полностью таблица содержит 93156 строк и охватывает период с 8 июля 2006 года по 8 августа 2009 года. Цель состоит в том, чтобы объединить информацию о продажах по месяцам.
Рис. 171.1. Вы можете использовать сводную таблицу для обобщения данных о продажах за месяц
На рис. 171.2 вы можете видеть часть сводной таблицы (в столбцах D:E
), созданную на основе данных. Неудивительно, что она выглядит так же, как и входные данные, поскольку даты не были сгруппированы. Для группировки элементов по месяцам щелкните правой кнопкой мыши на любой ячейке в столбце Дата сводной таблицы и выберите в контекстном меню пункт Группировать. Вы увидите окно Группирование, показанное на рис. 171.3. В списке выберите Месяцы и Годы и убедитесь, что начальная и конечная даты являются правильными. Нажмите кнопку ОК. Элементы Дата в сводной таблицы группируются по годам и по месяцам (как показано на рис. 171.4).
Рис. 171.2. Сводная таблица перед группировкой по месяцам и годам
Рис. 171.3. Используйте окно Группирование, чтобы сгруппировать элементы в сводной таблице
Если вы выберете только Месяцы в окне Группирование, будут объединены месяцы ИЗ разных лет. Например, элемент июнь отобразит продажи за 2008 и 2009 годы. Обратите внимание на то, что окно Группирование содержит и другие элементы, основанные на времени. Например, можно сгруппировать данные по кварталам (рис. 171.5).
Рис. 171.4. Сводная таблица после группировки по месяцам и годам
Рис. 171.5. Сводная таблица после группировки по кварталам и годам
На чтение 7 мин. Просмотров 36.3k.
Итог: узнаете, как изменить форматирование даты для сгруппированного поля в сводной таблице.
Уровень мастерства: Средний
Изменение формата для дат не работает
Когда мы группируем поле «Дата» в сводной таблице с помощью функции «Группировать», форматирование чисел для поля «День» фиксируется. Он имеет следующий формат «день-месяц» или «d-ммм».
Если мы попытаемся изменить числовой формат поля День/Дата, это не сработает. Ничего не меняется, когда мы заходим в Настройки поля> Числовой формат и меняем числовой формат на пользовательский или формат даты.
Почему?
Форматирование чисел не работает, потому что элемент сводки
— это фактически текст, а НЕ дата.
Когда мы группируем поля, функция группирования создает
элемент Дни для каждого дня одного года. Он сохраняет название месяца в именах
полей Day, и фактически это группа номеров дней (1-31) для каждого месяца.
На самом деле можно увидеть этот список текстовых элементов в файле pivotCacheDefinition.xml. Чтобы увидеть, что вы можете изменить расширение файла Excel на .zip и перейти к папке PivotCache.
Поскольку это текстовые элементы, представляющие дни года,
мы не сможем изменить форматирование ячеек непосредственно в Excel. Однако есть
несколько обходных путей.
Решение № 1 — Не используйте группы дат
Первым решением является создание полей (столбцов) в диапазоне исходных данных с различными группами по году, кварталу, месяцу, дням и т.д
Я подробно объясняю это в своей статье «Группировка дат в сводной таблице». Источник данных.
Использование собственных полей из исходных данных для
разных групп дат даст вам контроль над форматированием чисел поля в сводной
таблице.
Вы также
можете создать таблицу календаря с
группировками, если вы используете Power Pivot.
Автоматическая группировка полей даты
Если вы используете Excel 2016 (Office 365), то поле даты
автоматически группируется при добавлении его в сводную таблицу.
Разгруппировать поле даты:
- Выберите ячейку внутри сводной таблицы в одном
из полей даты. - Нажмите кнопку «Разгруппировать» на вкладке
«Анализ» ленты.
Автоматическая группировка является настройкой по умолчанию, которую можно изменить. См. мою статью «Даты группирования в сводной таблице». Даты группирования VERSUS приведены в исходных данных, чтобы узнать больше.
Как только поле даты будет разгруппировано, вы можете изменить форматирование поля.
Чтобы изменить форматирование чисел в несгруппированном поле
Дата:
- Щелкните правой кнопкой мыши ячейку в поле даты
сводной таблицы. - Выберите настройки поля …
- Нажмите кнопку «Числовой формат».
- Измените форматирование даты в окне «Формат
ячеек». - Нажмите ОК и ОК.
Опять же, это работает только для полей, которые НЕ
сгруппированы. Если вы снова сгруппируете поле после изменения форматирования,
форматирование элементов в поле «Дни» изменится на «1 января».
Решение №2. Изменение имен элементов сводки с помощью VBA
Если вы действительно хотите использовать функцию Group Field, то мы можем использовать макрос для изменения имен элементов сводки. Создается впечатление, что изменилось форматирование даты, но на самом деле меняется текст в каждом названии элемента сводки.
Следующий макрос перебирает все сводные элементы сгруппированного поля «Дни» и изменяет форматирование чисел на пользовательский формат. По умолчанию я установил «m/d», но вы можете изменить его на любой формат даты для месяца и дня. Просто помните, что элемент НЕ будет содержать год, так как элемент не является фактической датой.
Скачать файл
Загрузите
файл Excel, который содержит макрос.
Pivot Table Date Field Group Number Formatting Macro.xlsm (54.2 KB)
Макрос форматирования поля «Дни»
Sub Change_Days_Field_Formatting() ' Измените форматирование чисел в поле Дни ' для поля даты сгруппированной сводной таблицы. Dim pt As PivotTable Dim pi As PivotItem ' ВАЖНО: Измените следующее имя ' Сгруппированное поле Дни. Обычно это дни или название ' вашего поля даты. Const sDaysField As String = "Days" ' Установить ссылку на первую сводную таблицу на листе ' Это может быть изменено для ссылки на имя сводной таблицы 'Set pt = ActiveSheet.PivotTables("PivotTable1") Set pt = ActiveSheet.PivotTables(1) ' Установите имена обратно к их имени источника по умолчанию For Each pi In pt.PivotFields(sDaysField).PivotItems ' Обходит первый и последний пункты "<01.01.2015" ... If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then pi.Name = pi.SourceName End If Next pi ' Установите имена в произвольном формате чисел For Each pi In pt.PivotFields(sDaysField).PivotItems If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then ' Измените приведенный ниже формат «m / d» на пользовательский числовой формат. ' 2020 год используется для високосного года. pi.Name = Format(DateValue(pi.SourceName & "-2020"), "m/d") End If Next pi End Sub
Как работает макрос
Макрос сначала зацикливает элементы сводки в поле Дни, чтобы
восстановить имя элемента сводки в его исходное имя по умолчанию. Два разных
элемента не могут иметь одинаковое имя. Так что это должно предотвратить любые
ошибки при изменении или попытке разных форматов.
Второй цикл меняет каждый элемент сводки на новый формат. Он
использует функцию DateValue для изменения названия элемента сводки «1-Jan» на
дату. Затем он использует функцию «Формат», чтобы изменить форматирование даты
на текст. По умолчанию используется формат «m / d». Это может быть изменено на
другой формат с месяцем и днем. Каждый элемент должен быть уникальным, поэтому
вы можете использовать месяц и день в названии элемента.
Возможно, вы могли бы разделить этот макрос на два макроса и
запускать только первый цикл сброса по мере необходимости. Макрос занимает
около 15 секунд для запуска на моем компьютере из-за всех циклов. Но это не
тот, который вам придется часто бегать.
Также важно упомянуть, что это выполняется на элементах
сводки, а не на сводном кеше. Таким образом, только что названные элементы
будут изменены только в сводной таблице, на которой вы запускаете макрос.
Макрос форматирования сгруппированных элементов
Был задан большой вопрос в комментариях об изменении форматирования для сгруппированных чисел. Это та же проблема, что и для групп дат. Имена групп — это текст, а не цифры. Тем не менее, мы можем использовать макрос, чтобы изменить их.
Вот код макроса. Вам просто нужно изменить значение
константы sGroupField вверху на имя вашего сгруппированного поля. При
необходимости вы также можете изменить формат чисел в sNumberFormat.
Sub Change_Grouped_Field_Number_Formatting() ' Изменить форматирование номера поля сгруппированных номеров Dim pt As PivotTable Dim pi As PivotItem Dim sGroup() As String Dim sGroupName As String ' ВАЖНО: Измените следующее имя ' поле сгруппированного номера в области строк или столбцов. Const sGroupedField As String = "Quantity" Const sNumberFormat As String = "$#,###" ' Установить ссылку на первую сводную таблицу на листе ' Это может быть изменено для ссылки на имя сводной таблицы 'Set pt = ActiveSheet.PivotTables("PivotTable1") Set pt = ActiveSheet.PivotTables(1) ' Установите имена обратно к их имени источника по умолчанию For Each pi In pt.PivotFields(sGroupedField).PivotItems ' Обходит первый и последний пункты "<01.01.2015" ... If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then pi.Name = pi.SourceName End If Next pi ' Установите имена в произвольном формате чисел For Each pi In pt.PivotFields(sGroupedField).PivotItems If Left(pi.Name, 1) = "<" Or Left(pi.Name, 1) = ">" Then sGroupName = "<" & Format(Mid(pi.Name, 2, Len(pi.Name)), sNumberFormat) Else sGroup = Split(pi.Name, "-") sGroupName = Format(sGroup(0), sNumberFormat) & " - " & Format(sGroup(1), sNumberFormat) End If If sGroupName <> "" Then pi.Name = sGroupName Next pi End Sub
Окончательный вердикт
Я надеюсь, что информация была полезной. Я бы предложил использовать решение № 1, если вы не хотите использовать функцию группы.
Пожалуйста, оставьте комментарий ниже с любыми вопросами или
предложениями о том, как мы можем улучшить это. Спасибо! 🙂
Группировка и отмена группировки данных в сводной таблице
Группировка позволяет выделить для анализа определенное подмножество данных сводной таблицы. Например, вы можете захотеть сгруппировать поля даты и времени из громоздкого списка в сводной таблице по кварталам и месяцам.
-
Щелкните значение в сводной таблице правой кнопкой мыши и выберите команду Группировать.
-
В окне Группировка установите флажки Начиная с и Заканчивая и при необходимости измените значения.
-
В разделе С шагом выберите период времени. Для числовых полей введите число, которое указывает интервал для каждой группы.
-
Нажмите кнопку ОК.
-
Удерживая нажатой клавишу CTRL, выделите несколько значений.
-
Щелкните правой кнопкой мыши и выберите команду Группировать.
Приложение автоматически обнаруживает связи между значениями соответствующих полей и группирует их, когда пользователь добавляет в сводные таблицы строки полей времени. Созданную группу можно перетащить в сводную таблицу для анализа.
-
Выберите группу.
-
На вкладке Анализ нажмите кнопку Параметры поля. На вкладке Сводная таблица вАктивном поле щелкните Параметры поля.
-
Измените пользовательское имя, как вам нравится, а затем нажмите кнопку ОК.
-
Щелкните правой кнопкой мыши любой элемент в группе.
-
Выберите команду Разгруппировать.
-
Щелкните значение в сводной таблице правой кнопкой мыши и выберите команду Группировать.
-
В окне Группировка установите флажки Начиная с и Заканчивая и при необходимости измените значения.
-
В разделе С шагом выберите период времени. Для числовых полей введите число, которое указывает интервал для каждой группы.
-
Нажмите кнопку ОК.
-
Удерживая нажатой клавишу CTRL, выделите несколько значений.
-
Щелкните правой кнопкой мыши и выберите команду Группировать.
Приложение автоматически обнаруживает связи между значениями соответствующих полей и группирует их, когда пользователь добавляет в сводные таблицы строки полей времени. Созданную группу можно перетащить в сводную таблицу для анализа.
-
Выберите группу.
-
На вкладке Анализ нажмите кнопку Параметры поля. На вкладке Сводная таблица вАктивном поле щелкните Параметры поля.
-
Измените пользовательское имя, как вам нравится, а затем нажмите кнопку ОК.
-
Щелкните правой кнопкой мыши любой элемент в группе.
-
Выберите команду Разгруппировать.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Создание сводной таблицы для анализа данных на листе
Нужна дополнительная помощь?
Как сгруппировать дату по месяцу, году, полугодию или другим конкретным датам в сводной таблице?
Если в Excel данные в сводной таблице содержат дату, и пытались ли вы сгруппировать данные по месяцам, кварталам или годам? Теперь в этом руководстве рассказывается, как сгруппировать дату по месяцам / годам / кварталам в сводной таблице в Excel.
Группировать дату по месяцам, кварталам или годам в сводной таблице
Группировать дату по полугодию, номеру недели или другим конкретным датам в сводной таблице
Простая демонстрация
Группировать дату по месяцам, кварталам или годам в сводной таблице
В сводной таблице есть функция группировки, вы можете применить ее для группировки данных по мере необходимости.
1. Выберите нужный диапазон данных и нажмите Вставить > PivotTable. Смотрите скриншот:
2. В Создать сводную таблицу в диалоговом окне выберите нужный вариант в Выберите, где вы хотите разместить отчет сводной таблицы раздел. Смотрите скриншот:
3. Нажмите OK для создания сводной таблицы. И в Список полей сводной таблицы панели, перетащите поле в нужные области и убедитесь, что метка даты находится в списке меток строк. (В Excel 2016 и более поздних версиях дата автоматически сгруппируется по годам и кварталам), см. Снимок экрана:
4. Затем перейдите к сводной таблице, щелкните правой кнопкой мыши в любом месте под заголовком «Ярлыки строк» и выберите группы. Смотрите скриншот:
5. В группирование диалоговом окне выберите критерии группировки из By список. Здесь я выбираю Месяц и Лет. Смотрите скриншот:
Tips: В этом группирование диалоговом окне вы также можете выбрать Месяцев, помещение, Лет отдельно для группировки даты по месяцам, кварталам или годам, как вам нужно.
6. Нажмите OK чтобы применить функцию. Теперь вы можете видеть, что данные сгруппированы по месяцам и годам, как показано на следующем снимке экрана:
Группировать дату по полугодию, номеру недели или другим конкретным датам в сводной таблице
С помощью описанного выше метода вы можете быстро сгруппировать дату по месяцу, году, кварталу, но иногда вам может потребоваться сгруппировать дату по определенной дате, например финансовому году, полугодию, номеру недели и т. Д. Обычная функция Group не поддерживает эту проблему.
Если у вас есть Kutools for Excel, С его Группировка по особому времени сводной таблицы функция, вы можете быстро сгруппировать дату по финансовому году, полугодию, номеру недели, дню недели, получасу или конкретным минутам по мере необходимости.
Советы:Чтобы применить это Группировка по особому времени сводной таблицы функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте так:
1. Нажмите Кутулс Плюс > Сводная таблица > Группировка по особому времени сводной таблицы, см. снимок экрана:
2. В Группировка по особому времени сводной таблицы диалоговом окне выполните следующие действия:
- (1.) Сначала выберите диапазон данных, в котором вы хотите создать сводную таблицу, сгруппированную по определенной дате;
- (2.) Из Группа по список, выберите нужный вариант, в данном случае я выбираю Полгода;
- (3.) Затем выберите столбец даты, по которому вы хотите сгруппировать;
- (4.) Наконец, выберите место для вывода сводной таблицы, вы можете поместить сводную таблицу на новый рабочий лист или в ячейку текущего рабочего листа, как вам нужно.
3. После завершения настроек нажмите Ok кнопка и новый Полгода Вспомогательный столбец добавляется справа от диапазона данных.
4. Затем щелкните любую ячейку в сводной таблице, чтобы активировать Поля сводной таблицы панель, перетащите Полгода поле к Ряды раздел, а затем перетащите другие поля в нужные разделы по мере необходимости. Теперь вы увидите, что сводная таблица создана, а даты сгруппированы по полугодиям каждого года. Смотрите скриншот:
Нажмите, чтобы скачать Kutools for Excel и бесплатная пробная версия прямо сейчас!
Простая демонстрация
Группировать дату по финансовому году, полугодию, номеру недели или другим конкретным датам в сводной таблице
Обычно вы можете быстро сгруппировать сводную таблицу по месяцам, годам, кварталам, но иногда вам может потребоваться сгруппировать данные на основе финансового года, полугодия и других конкретных дат. В этом случае, Kutools for Excel‘s Группировка по особому времени сводной таблицы Утилита расширяет исходную функцию группировки и поддерживает больше группировок дат. Нажмите, чтобы скачать Kutools for Excel!
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!