Перекрытие отчетов сводных таблиц не допускается — Решение
Исправляем ошибку экселя — перекрытие отчетов сводных таблиц. Решение проблемы, когда одна сводная таблица заходит на ячейки другой сводной.
Сводная таблица удобный инструмент для формирования динамических отчетов (многоразовых). Более того, гибкости таким отчетам добавляют срезы, которые можно добавлять к сводным.
Но минус в том, что когда отпускаешь все фильтры и сводная растягивается максимально по строкам, она не добавляет новые строки на листе экселя, а движется поверх них замещая все что там есть.
Это вообще не страшно, когда у вас всего одна сводная, но становится проблемой, когда вы на одном листе хотите разместить несколько сводных одна по другой.
Так вот, когда верхняя сводная попытается залезть на територию нижней (загрузлось больше данных или отпустили все фильтры), то excel выдаст ошибку что-то типа «запрещено перекрытие отчетов сводных», то есть две сводные не могут размещаться на одних и тех же ячейках.
Во вложении решение этой проблемы через макрос.
После первой сводной есть большой пропуск строк – запас в 1000 строк, которые используются как буфер. Макрос отслеживает любое изменение сводной на листе и мгновенно пересматривает кол-во используемых строк сводной в заданном диапазоне, после чего прячет неиспользуемые строки. Так визуально две сводные находятся рядом возле друг друга и при этом решается проблема того, что одна сводная может залезть на другую.
Макрос сам размещается в коде листа, а не модуля — Жмакнуть правой кнопкой мыши на требуемый лист экселя слева внизу на панели листов документа / В контекстном меню выбрать «Просмотреть код» — сюда и размещать макрос.
Сам макрос с максимально детализированными комментариями:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
'отслеживаем изменение данных в сводных таблицах на листе
'Выключаем обновление экрана для ускорения
Application.ScreenUpdating = False
Dim lRow As Long
'открываем скрытые строки
Rows("15:1015").EntireRow.Hidden = False
'Диапазон для отслеживания пустых строк
Range("A14:A1015").Select
'Определяем последнюю используемую строку в заданном диапазоне
lRow = Selection.Find(What:="*", _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
lRow = lRow + 1
'Прячем лишние строки
Rows(lRow & ":1015").EntireRow.Hidden = True
Range("A14").Select
'Диаграмме приндительно меняем высоту, на случай если был какой=то сдвиг в данных
ActiveSheet.Shapes("Диаграмма 2").Height = 283.4645669291
'Включаем обновление экрана
Application.ScreenUpdating = True
End Sub
Пример работы, напоминаю, можно посмотреть во вложении.
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Archie Goodwin
«Странный этот мир, где двое смотрят на одно и то же, а видят полностью противоположное.» © Агата Кристи
Реклама
MS Office и VBA Рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь — Excel, Word, Access) более эффективной.
Перекрытие отчетов сводных таблиц не допускается — Решение
0.0 (0) | 11496 | 0
Сводная таблица удобный инструмент для формирования динамических отчетов (многоразовых). Более того, гибкости таким отчетам добавляют срезы, которые можно добавлять к сводным.
Но минус в том, что когда отпускаешь все фильтры и сводная растягивается максимально по строкам, она не добавляет новые строки на листе экселя, а движется поверх них замещая все что там есть.
Это вообще не страшно, когда у вас всего одна сводная, но становится проблемой, когда вы на одном листе хотите разместить несколько сводных одна по другой.
Так вот, когда верхняя сводная попытается залезть на територию нижней (загрузлось больше данных или отпустили все фильтры), то excel выдаст ошибку что-то типа «запрещено перекрытие отчетов сводных», то есть две сводные не могут размещаться на одних и тех же ячейках.
Во вложении решение этой проблемы через макрос.
После первой сводной есть большой пропуск строк – запас в 1000 строк, которые используются как буфер. Макрос отслеживает любое изменение сводной на листе и мгновенно пересматривает кол-во используемых строк сводной в заданном диапазоне, после чего прячет неиспользуемые строки. Так визуально две сводные находятся рядом возле друг друга и при этом решается проблема того, что одна сводная может залезть на другую.
Макрос сам размещается в коде листа, а не модуля — Жмакнуть правой кнопкой мыши на требуемый лист экселя слева внизу на панели листов документа / В контекстном меню выбрать «Просмотреть код» — сюда и размещать макрос.
Сам макрос с максимально детализированными комментариями: Пример работы, напоминаю, можно посмотреть во вложении.
О сайте
«Понемногу обо всем и все, о немногом» — именно такой слоган, по-видимому, является наилучшим определением тематики блога. Здесь пишу о том, что для меня интересно или важно, собственно, поэтому разброс тематик очень широк – от размышлений на философские темы и смешных историй, до конкретных инструкций или анализа событий.
Правда, помимо общих тематик, которые есть почти на каждом личном блоге, стоит выделить специализированные рубрики блога, которые будут полезны и интересны вебмастерам, программистам, дизайнерам, офисным работникам и пользователям ПК, желающим повысить свои навыки и уровень знаний. Подробнее о спецрубриках
Записки вебмастера – рубрика, которая призвана собрать коллекцию полезных скриптов и авторских решений, интересных особенностей и стандартов верстки, решение вопросов юзабилити и функционала, полезных ресурсов и программ.
Вопрос дизайна – это актуальные тренды, пошаговые и видео-уроки в фотошопе, необходимые плагины для фоторедакторов, векторные и PSD исходники, PNG иконки и GIF анимации, кириллические шрифты с засечками и без засечек, заливки (паттерны) и градиенты.
Мой ПК – каждая статья в этой рубрике направлена на то, чтобы узнать свой компьютер лучше. Здесь можно будет почитать о системных процессах и редактировании системного реестра, о способах защитить личные данные и компьютер в целом, о настройке локальной сети и подключениях к сети интернет, обзор ряда программ, которые делают работу за компьютером удобнее, быстрее и приятнее.
MS Office и VBA – эта рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь — Excel, Word, Access, PowerPoint) более эффективной.
Прочие офисные программы – рубрика о программах для ведения учета (конфигурации, платформы, внешние отчеты для 1C), сдачи отчетности (MeDoc, БестЗвіт) и статистического анализа данных (SPSS), также здесь можно найти обзоры программного обеспечения для работы с периферийными устройствами. Свернуть
Как использовать несколько сводных таблиц на одном листе без ошибки перекрытия?
У меня есть несколько сводных таблиц на одном листе. Поскольку каждый из них имеет зависимый размер из-за данных, это вызывает ошибку:
сводная таблица не может перекрывать другую сводную таблицу.
есть ли умный способ обойти это? К сожалению, мне нужно, чтобы они все были на одном листе.
3 ответов
Добро пожаловать в Superuser.
вы получаете эту ошибку, так как таблицы пытаются развернуться для отображения данных, удовлетворяющих критериям сводной таблицы. Таблицы должны расти, чтобы сделать это.
то, что вы просите, кажется, вопрос, заданный в течение нескольких лет на многих форумах. К сожалению, окончательного ответа нет. Кажется, что функция сводной таблицы не была разработана, чтобы хорошо играть с другими сводными таблицами на одном листе.
Если ваши сводные таблицы должны быть на одном листе, я делаю следующее предложение; поместите их бок о бок. Вам нужно будет иметь представление о том, сколько столбцов потребуется для каждой таблицы по мере ее расширения. После этого установьте зазор между таблицами которые могут учитывать расширение таблицы.
У меня есть этот же вопрос часто, поэтому я создал следующую работу вокруг. Во-первых, вставьте строки между вашими сводными таблицами, которые позволят им расширяться до максимума, в котором они вам нужны. 1) вставить столбец слева от таблицы.ex столбец A 2) Введите следующую формулу в 1-ю ячейку (A1) столбца. = if (B1«», 1, 2) 3) скопируйте и вставьте эту формулу в последнюю возможную ячейку столбца. Каждая ячейка должна содержать формулу в столбце A. Она должна пройти весь путь вниз последнюю строку сводной таблицы. 4) выберите строку 1 и вставьте пустую строку. 5) примените фильтр к каждому столбцу на листе (Data-Filter) при фильтрации столбца A можно выбрать 1 или 2. 1 покажет только строки, содержащие данные (ваши сводные таблицы) и 2 покажет все строки.
Я знаю, что это очень старый вопрос из нескольких лет назад, но на всякий случай кто — то другой может encoutner тот же вопрос. В Excel 2010 например, все, что вам нужно сделать, это определить нужный спектр и дать ему уникальное имя таблицы. Затем при настройке сводной таблицы можно выбрать любую определенную таблицу в качестве источника данных. Это позволит вам вставить несколько сводных таблиц (каждый может иметь разные диапазоны ячеек) на одном листе.
Перекрытие отчетов сводных таблиц не допускается что делать
Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет.
Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет. Anis625
Сообщение Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет. Автор — Anis625
Дата добавления — 07.01.2020 в 23:16
Archie Goodwin
«Странный этот мир, где двое смотрят на одно и то же, а видят полностью противоположное.» © Агата Кристи
Реклама
MS Office и VBA Рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь — Excel, Word, Access) более эффективной.
Перекрытие отчетов сводных таблиц не допускается — Решение
0.0 (0) | 11496 | 0
Сводная таблица удобный инструмент для формирования динамических отчетов (многоразовых). Более того, гибкости таким отчетам добавляют срезы, которые можно добавлять к сводным.
Но минус в том, что когда отпускаешь все фильтры и сводная растягивается максимально по строкам, она не добавляет новые строки на листе экселя, а движется поверх них замещая все что там есть.
Это вообще не страшно, когда у вас всего одна сводная, но становится проблемой, когда вы на одном листе хотите разместить несколько сводных одна по другой.
Так вот, когда верхняя сводная попытается залезть на територию нижней (загрузлось больше данных или отпустили все фильтры), то excel выдаст ошибку что-то типа «запрещено перекрытие отчетов сводных», то есть две сводные не могут размещаться на одних и тех же ячейках.
Во вложении решение этой проблемы через макрос.
После первой сводной есть большой пропуск строк – запас в 1000 строк, которые используются как буфер. Макрос отслеживает любое изменение сводной на листе и мгновенно пересматривает кол-во используемых строк сводной в заданном диапазоне, после чего прячет неиспользуемые строки. Так визуально две сводные находятся рядом возле друг друга и при этом решается проблема того, что одна сводная может залезть на другую.
Макрос сам размещается в коде листа, а не модуля — Жмакнуть правой кнопкой мыши на требуемый лист экселя слева внизу на панели листов документа / В контекстном меню выбрать «Просмотреть код» — сюда и размещать макрос.
Сам макрос с максимально детализированными комментариями: Пример работы, напоминаю, можно посмотреть во вложении.
О сайте
«Понемногу обо всем и все, о немногом» — именно такой слоган, по-видимому, является наилучшим определением тематики блога. Здесь пишу о том, что для меня интересно или важно, собственно, поэтому разброс тематик очень широк – от размышлений на философские темы и смешных историй, до конкретных инструкций или анализа событий.
Правда, помимо общих тематик, которые есть почти на каждом личном блоге, стоит выделить специализированные рубрики блога, которые будут полезны и интересны вебмастерам, программистам, дизайнерам, офисным работникам и пользователям ПК, желающим повысить свои навыки и уровень знаний. Подробнее о спецрубриках
Записки вебмастера – рубрика, которая призвана собрать коллекцию полезных скриптов и авторских решений, интересных особенностей и стандартов верстки, решение вопросов юзабилити и функционала, полезных ресурсов и программ.
Вопрос дизайна – это актуальные тренды, пошаговые и видео-уроки в фотошопе, необходимые плагины для фоторедакторов, векторные и PSD исходники, PNG иконки и GIF анимации, кириллические шрифты с засечками и без засечек, заливки (паттерны) и градиенты.
Мой ПК – каждая статья в этой рубрике направлена на то, чтобы узнать свой компьютер лучше. Здесь можно будет почитать о системных процессах и редактировании системного реестра, о способах защитить личные данные и компьютер в целом, о настройке локальной сети и подключениях к сети интернет, обзор ряда программ, которые делают работу за компьютером удобнее, быстрее и приятнее.
MS Office и VBA – эта рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь — Excel, Word, Access, PowerPoint) более эффективной.
Прочие офисные программы – рубрика о программах для ведения учета (конфигурации, платформы, внешние отчеты для 1C), сдачи отчетности (MeDoc, БестЗвіт) и статистического анализа данных (SPSS), также здесь можно найти обзоры программного обеспечения для работы с периферийными устройствами. Свернуть
Как использовать несколько сводных таблиц на одном листе без ошибки перекрытия?
У меня есть несколько сводных таблиц на одном листе. Поскольку каждый из них имеет зависимый размер из-за данных, это вызывает ошибку:
сводная таблица не может перекрывать другую сводную таблицу.
есть ли умный способ обойти это? К сожалению, мне нужно, чтобы они все были на одном листе.
3 ответов
Добро пожаловать в Superuser.
вы получаете эту ошибку, так как таблицы пытаются развернуться для отображения данных, удовлетворяющих критериям сводной таблицы. Таблицы должны расти, чтобы сделать это.
то, что вы просите, кажется, вопрос, заданный в течение нескольких лет на многих форумах. К сожалению, окончательного ответа нет. Кажется, что функция сводной таблицы не была разработана, чтобы хорошо играть с другими сводными таблицами на одном листе.
Если ваши сводные таблицы должны быть на одном листе, я делаю следующее предложение; поместите их бок о бок. Вам нужно будет иметь представление о том, сколько столбцов потребуется для каждой таблицы по мере ее расширения. После этого установьте зазор между таблицами которые могут учитывать расширение таблицы.
У меня есть этот же вопрос часто, поэтому я создал следующую работу вокруг. Во-первых, вставьте строки между вашими сводными таблицами, которые позволят им расширяться до максимума, в котором они вам нужны. 1) вставить столбец слева от таблицы.ex столбец A 2) Введите следующую формулу в 1-ю ячейку (A1) столбца. = if (B1«», 1, 2) 3) скопируйте и вставьте эту формулу в последнюю возможную ячейку столбца. Каждая ячейка должна содержать формулу в столбце A. Она должна пройти весь путь вниз последнюю строку сводной таблицы. 4) выберите строку 1 и вставьте пустую строку. 5) примените фильтр к каждому столбцу на листе (Data-Filter) при фильтрации столбца A можно выбрать 1 или 2. 1 покажет только строки, содержащие данные (ваши сводные таблицы) и 2 покажет все строки.
Я знаю, что это очень старый вопрос из нескольких лет назад, но на всякий случай кто — то другой может encoutner тот же вопрос. В Excel 2010 например, все, что вам нужно сделать, это определить нужный спектр и дать ему уникальное имя таблицы. Затем при настройке сводной таблицы можно выбрать любую определенную таблицу в качестве источника данных. Это позволит вам вставить несколько сводных таблиц (каждый может иметь разные диапазоны ячеек) на одном листе.
Перекрытие отчетов сводных таблиц не допускается что делать
Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет.
Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет. Anis625
Сообщение Добрый вечер, участникам форума.
Сводными таблицами очень редко пользуюсь и настал этот час Х.
Освежил в памяти свои знания и даже сделал набросок. Но оказывается перекрытие сводных таблиц не допускается (не знал). Делать со смещением вправо не вариант, т.к. пытаюсь сделать компактный отчет на 1 листе со срезами.
Если нет вариантов обойти перекрытие сводных таблиц можно ли каким-то образом зашить информацию в одну сводную таблицу? Пример приложил.
Помнится как-то в старом виде можно делать сводную таблицу чтобы часть списка отображалась справа, но не помню как это делать.
Буду признателей за любой совет. Автор — Anis625
Дата добавления — 07.01.2020 в 23:16
- Remove From My Forums
-
Question
-
Hi All,
I have two Pivot Tables placed in stacked manner. When I clear filters of first table, it gets expanded & as there is very less space between two tables so it gives an error as
«A Pivot Table report can not overlap another Pivot Table».So is there any to solve this problem? I mean can we put tables in such a way that even if it gets expanded it should not get overlap.
Thanks in advance!
Answers
-
Hi Rameshwar,
The best way to avoid this error is by placing the two Pivot Tables side-by-side as opposed to one on top of another — this is based on the assumption that the columns don’t expand also. The dynamic height when drilling down means that even if you knew the
exact cell height for a Pivot Table after being fully expanded, and placed another Pivot Table below it, so that there would be no overlap, there would be a large gap between the two tables by default. Generally speaking, it’s a good practice to have one PivotTable
per worksheet, especially when they have collapsible rows and columns.
Regards,
Michael
Please remember to mark a post that answers your question as an answer…If a post doesn’t answer your question but you’ve found it helpful, please remember to vote it as helpful
-
Edited by
Tuesday, February 25, 2014 1:03 PM
Further clarifications -
Proposed as answer by
Mike DietterickEditor
Wednesday, February 26, 2014 10:55 PM -
Marked as answer by
Mike DietterickEditor
Tuesday, April 29, 2014 4:42 PM
-
Edited by
- Remove From My Forums
-
Question
-
Hi All,
I have two Pivot Tables placed in stacked manner. When I clear filters of first table, it gets expanded & as there is very less space between two tables so it gives an error as
«A Pivot Table report can not overlap another Pivot Table».So is there any to solve this problem? I mean can we put tables in such a way that even if it gets expanded it should not get overlap.
Thanks in advance!
Answers
-
Hi Rameshwar,
The best way to avoid this error is by placing the two Pivot Tables side-by-side as opposed to one on top of another — this is based on the assumption that the columns don’t expand also. The dynamic height when drilling down means that even if you knew the
exact cell height for a Pivot Table after being fully expanded, and placed another Pivot Table below it, so that there would be no overlap, there would be a large gap between the two tables by default. Generally speaking, it’s a good practice to have one PivotTable
per worksheet, especially when they have collapsible rows and columns.
Regards,
Michael
Please remember to mark a post that answers your question as an answer…If a post doesn’t answer your question but you’ve found it helpful, please remember to vote it as helpful
-
Edited by
Tuesday, February 25, 2014 1:03 PM
Further clarifications -
Proposed as answer by
Mike DietterickEditor
Wednesday, February 26, 2014 10:55 PM -
Marked as answer by
Mike DietterickEditor
Tuesday, April 29, 2014 4:42 PM
-
Edited by
У меня есть несколько сводных таблиц на одном листе. Поскольку каждый из них имеет зависимый размер из-за данных, это вызывает ошибку:
Сводная таблица не может перекрывать другую сводную таблицу.
Есть ли умный способ обойти это? Мне нужно, чтобы они все были на одном листе, к сожалению ….
Добро пожаловать в Superuser.
Вы получаете эту ошибку, потому что таблицы пытаются развернуть, чтобы отобразить данные, которые соответствуют критериям сводки. Таблицы должны расти, чтобы сделать это.
То, что вы спрашиваете, кажется вопросом, задаваемым в течение нескольких лет на многих форумах. К сожалению, нет однозначного ответа. Похоже, что функция сводных таблиц не была разработана, чтобы хорошо играть с другими сводными таблицами на том же листе.
Если ваши сводные таблицы ДОЛЖНЫ быть на одном листе, я сделаю следующее предложение; разместите их рядом. Вам нужно иметь представление о том, сколько столбцов потребуется для каждой таблицы при ее расширении. Затем поместите промежуток между столами, который может позволить расширение стола.
У меня часто возникает эта проблема, поэтому я создал следующую работу вокруг.
Во-первых, вставьте строки между вашими сводными таблицами, которые позволят им расширяться настолько, насколько вам нужно.
1) вставьте столбец слева от сводных таблиц. Столбец A 2) введите следующую формулу в 1-ю ячейку (A1) столбца. = if (B1 <> «», 1,2) 3) скопировать и вставить эту формулу до последней возможной ячейки в столбце. Каждая ячейка должна содержать формулу в столбце А. Она должна пройти весь путь до последней возможной строки вашей сводной таблицы.
4) выберите строку 1 и вставьте пустую строку.
5) Примените фильтр к каждому столбцу на вашем рабочем листе (Фильтр данных), когда вы фильтруете Столбец А, вы можете выбрать 1 или 2. 1 покажет только строки, содержащие данные (ваши сводные таблицы), а 2 покажет все строки.
Я знаю, что это очень старый вопрос от нескольких лет назад, но на тот случай, если кто-то другой может засечь эту проблему. Например, в Excel 2010 все, что вам нужно сделать, это определить необходимый диапазон и присвоить ему уникальное имя таблицы. Затем, когда вы настраиваете свою сводную таблицу, вы можете выбрать любую определенную таблицу в качестве источника данных. Это позволит вам вставить несколько сводных таблиц (каждая может иметь разные диапазоны ячеек) на одном листе.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками microsoft-excel microsoft-excel-2010 pivot-table.
У меня есть несколько сводных таблиц на одном листе. Поскольку каждый из них имеет зависимый размер из-за данных, это вызывает ошибку:
сводная таблица не может перекрывать другую сводную таблицу.
есть ли умный способ обойти это? К сожалению, мне нужно, чтобы они все были на одном листе….
источник
Добро пожаловать в Superuser.
вы получаете эту ошибку, так как таблицы пытаются развернуться для отображения данных, удовлетворяющих критериям сводной таблицы. Таблицы должны расти, чтобы сделать это.
то, что вы просите, кажется, вопрос, заданный в течение нескольких лет на многих форумах. К сожалению, окончательного ответа нет. Кажется, что функция сводной таблицы не была разработана, чтобы хорошо играть с другими сводными таблицами на одном листе.
Если ваши сводные таблицы должны быть на одном листе, я делаю следующее предложение; поместите их бок о бок. Вам нужно будет иметь представление о том, сколько столбцов потребуется для каждой таблицы по мере ее расширения. После этого установьте зазор между таблицами которые могут учитывать расширение таблицы.
отвечен CharlieRB 2012-06-19 14:23:29
источник
У меня есть этот же вопрос часто, поэтому я создал следующую работу вокруг.
Во-первых, вставьте строки между вашими сводными таблицами, которые позволят им расширяться до максимума, в котором они вам нужны.
1) вставить столбец слева от таблицы.ex столбец A
2) Введите следующую формулу в 1-ю ячейку (A1) столбца. = if (B1<>»», 1, 2)
3) скопируйте и вставьте эту формулу в последнюю возможную ячейку столбца. Каждая ячейка должна содержать формулу в столбце A. Она должна пройти весь путь вниз последнюю строку сводной таблицы.
4) выберите строку 1 и вставьте пустую строку.
5) примените фильтр к каждому столбцу на листе (Data-Filter)
при фильтрации столбца A можно выбрать 1 или 2. 1 покажет только строки, содержащие данные (ваши сводные таблицы) и 2 покажет все строки.
отвечен jim h 2015-10-08 17:33:50
источник
Я знаю, что это очень старый вопрос из нескольких лет назад, но на всякий случай кто — то другой может encoutner тот же вопрос. В Excel 2010 например, все, что вам нужно сделать, это определить нужный спектр и дать ему уникальное имя таблицы. Затем при настройке сводной таблицы можно выбрать любую определенную таблицу в качестве источника данных. Это позволит вам вставить несколько сводных таблиц (каждый может иметь разные диапазоны ячеек) на одном листе.
источник
Содержание
- Советы по работе со сводными таблицами
- Создание отчета с помощью мастера сводных таблиц
- Некоторые секреты форматирования
- Детализация информации
- Создание связанных таблиц
- Способ 1: прямое связывание таблиц формулой
- Способ 2: использование связки операторов ИНДЕКС — ПОИСКПОЗ
- Способ 3: выполнение математических операций со связанными данными
- Способ 4: специальная вставка
- Способ 5: связь между таблицами в нескольких книгах
- Разрыв связи между таблицами
- Способ 1: разрыв связи между книгами
- Способ 2: вставка значений
- Помогла ли вам эта статья?
- Создание связей между рабочими книгами
- Прежде чем создавать связи между таблицами
- Обновление связей
- Разорвать связи в книгах Excel
- Создание модели данных
- Динамический источник данных сводной таблицы
- Фиксированный диапазон
- «Умная таблица»
- Динамический именованный диапазон
- Смотри также
- » Обработка больших объемов данных. Часть 3. Сводные таблицы
- » Сводная таблица Excelfin.ru
- » Сводные таблицы
- » Сводный отчет на основе нескольких таблиц Excel
- » Обновление списков сводной таблицы
- Полезные статьи:
Советы по работе со сводными таблицами
В настоящей заметке представлена коллекция простых и изящных инструментов работы со сводными таблицами в Excel. То, что по-английски называется tips & tricks. Выделите время и ознакомьтесь с приводимыми здесь советами. Кто знает, может быть, вы наконец-то найдете ответ на долго мучивший вас вопрос?
Совет 1. Автоматическое обновление сводных таблиц
Иногда требуется, чтобы сводные таблицы обновлялись автоматически. Предположим, вы создали сводную таблицу для менеджера. Вряд ли вы сможете регулярно обновлять ее, разве что менеджер допустит вас к своему ноутбуку. Можно включить автоматическое обновление сводной таблицы, которое будет выполняться всякий раз при открытии книги:
- Щелкните правой кнопкой мыши на сводной таблице и в контекстном меню выберите пункт Параметры сводной таблицы.
- В появившемся диалоговом окне Параметры сводной таблицы выберите вкладку Данные.
- Установите флажок Обновить при открытии файла.
Рис. 1. Включите опцию Обновить при открытии файла
Флажок Обновить при открытии файла следует устанавливать для каждой сводной таблицы отдельно.
Скачать заметку в формате Word или pdf, примеры в формате Excel (файл содержит код VBA).
Совет 2. Одновременное обновление всех сводных таблиц книги
Если в рабочей книге содержится несколько сводных таблиц, одновременное их обновление может быть проблематичным. Существует несколько способов преодолеть эти трудности:
Способ 1. Можно выбрать для каждой сводной таблицы, входящей в состав рабочей книги, настройку, задающую автоматическое обновление при открытии книги (подробнее см. Совет 1).
Способ 2. Обновлять каждую сводную таблицу в рабочей книге можно с помощью макроса. Этот способ идеален в том случае, когда нужно обновлять сводную таблицу по требованию, а не только при открытии рабочей книги. Включите запись макроса. Затем в режиме записи макроса выберите каждую сводную таблицу в рабочей книге и обновите ее. По завершении обновления всех сводных таблиц остановите запись макроса. В результате вы получите макрос, который может вызываться в случае необходимости и обновлять все сводные таблицы (подробнее см. Макросы в сводных таблицах).
Способ 3. Воспользуйтесь кодом VBA для обновления всех сводных таблиц в рабочей книге по требованию. Данный подход предусматривает использование метода RefreshAll объекта Workbook. Для использования этой методики создайте новый модуль и введите следующий код:
Sub Refresh_All()
ThisWorkbook.RefreshAll
End Sub
Учтите, что метод RefreshAll наравне со сводными таблицами обновляет все внешние диапазоны данных. Если рабочая книга содержит данные из внешних источников, например, базы данных или внешние файлы, все они будут обновлены вместе со сводными таблицами (подробнее о записи кода VBA см. VBA в сводных таблицах).
Совет 3. Сортировка элементов данных в произвольном порядке
На рис. 2 показан заданный по умолчанию порядок отображения регионов в сводной таблице. Регионы отсортированы в алфавитном порядке: Запад, Север, Средний Запад и Юг. Если ваши корпоративные правила требуют, чтобы сначала отображался регион Запад, а затем — регионы Средний Запад, Север и Юг, выполните ручную сортировку. Просто введите Средний Запад в ячейку С4 и нажмите клавишу Enter. Порядок сортировки регионов изменится.
Рис. 2. Регионы отображаются в алфавитном порядке
Совет 4. Преобразование сводной таблицы в жестко заданные значения
Цель создания сводной таблицы — суммирование и отображение данных в подходящем формате. Исходные данные для сводной таблицы хранятся отдельно, в связи с чем возникают определенные «накладные расходы». Преобразование сводной таблицы в значения позволит использовать полученные в ней результаты без обращения к исходным данным либо кешу сводной таблицы. Способ преобразования сводной таблицы зависит от того, затрагивается ли вся таблица или только ее часть.
Для преобразования части сводной таблицы выполните следующие действия:
- Выделите копируемые данные сводной таблицы, щелкните правой кнопкой мыши и в контекстном меню выберите пункт Копировать (или наберите на клавиатуре Ctrl+C).
- Щелкните правой кнопкой мыши в произвольном месте рабочего листа и в контекстном меню выберите команду Вставить (или наберите Ctrl+V).
Если нужно преобразовать всю сводную таблицу, выполните следующие действия:
- Выделите всю сводную таблицу, щелкните правой кнопкой мыши и в контекстном меню выберите пункт Копировать. Если сводная не содержит область ФИЛЬТРЫ, то для выделения области сводной таблицы можно воспользоваться клавиатурным сокращением Ctrl+Shift+*.
- Щелкните правой кнопкой мыши в произвольном месте листа и в контекстном меню выберите параметр Специальная вставка.
- Выберите параметр Значения и щелкните ОК.
Перед преобразованием сводной таблицы целесообразно удалить промежуточные итоги, поскольку они не слишком нужны в автономном наборе данных. Чтобы удалить все промежуточные итоги пройдите по меню Конструктор -> Промежуточные итоги -> Не показывать промежуточные итоги. Для удаления конкретных промежуточных итогов щелкните правой кнопкой мыши на ячейке, в которой эти итоги вычисляются. Выберите в контекстном меню пункт Параметры поля и в диалоговом окне Параметры поля в разделе Итоги выберите переключатель Нет. После щелчка на кнопке ОК промежуточные итоги будут удалены.
Совет 5. Заполнение пустых ячеек в полях СТРОКИ
После преобразования сводной таблицы на листе отображаются не только значения, но и вся структура данных сводной таблицы. Например, данные, показанные на рис. 3, были получены на основе сводной таблицы с макетом в табличной форме.
Рис. 3. Использовать эту преобразованную сводную таблицу без заполнения пустых ячеек в левой части проблематично
Обратите внимание на то, что поля Регион и Рынок сбыта сохраняет ту же структуру строк, которая присуща при нахождении этих данных в области СТРОКИ сводной таблицы. В Excel 2013 существует быстрый способ заполнения ячеек в области СТРОКИ значениями. Кликните в области сводной таблицы, после чего пройдите по меню Конструктор -> Макет отчета -> Повторять все подписи элементов (рис. 4). После этого можно преобразовать сводную таблицу в значения, в результате чего вы получите таблицу данных без пробелов.
Рис. 4. После применения команды Повторять все подписи элементов заполняются все пустые ячейки
Совет 6. Ранжирование числовых полей сводной таблицы
В процессе сортировки и ранжирования полей, содержащих большое количество элементов данных, не всегда легко определить числовой ранг анализируемого элемента данных. Более того, если сводная таблица будет преобразована в значения, назначенный каждому элементу данных числовой ранг, отображенный в целочисленном поле, значительно облегчит анализ созданного набора данных. Откройте сводную таблицу, подобную показанной на рис. 5. Обратите внимание на то, что один и тот же показатель — Сумма по полю Объем продаж — отображается дважды. Щелкните правой кнопкой мыши на втором экземпляре показателя и в контекстном меню выберите команду Дополнительные вычисления -> Сортировка от максимального к минимальному (рис. 6.)
После создания ранга можно настроить подписи полей и форматирование (рис. 14.9). В результате будет получен красивый ранжированный отчет.
Рис. 5. Создайте сводную таблицу, в которой объем продаж в области ЗНАЧЕНИЯ выводится дважды
Рис. 6. Сортировка от максимальных значений к минимальным с помощью дополнительных вычислений
Рис. 7. Перед вами завершенный ранжированный отчет
Совет 7. Уменьшение размера отчета сводной таблицы
При формировании отчета сводной таблицы Excel создает снимок данных и сохраняет его в кеше сводной таблицы. Кеш сводной таблицы представляет собой специальную область памяти, в которой хранится копия источника данных для ускорения доступа. Другими словами, Excel создает копию данных, а затем хранит ее в кеше, связанном с рабочей книгой. Кеш сводной таблицы обеспечивает оптимизацию рабочего процесса. Любые изменения, внесенные в сводную таблицу, такие как изменение расположения полей, добавление новых полей либо сокрытие каких-либо элементов, выполняются быстрее, а требования к системным ресурсам оказываются гораздо скромнее. Основной недостаток кеша сводной таблицы заключается в том, что в результате его применения практически вдвое увеличивается размер файла рабочей книги при каждом создании сводной таблицы «с нуля».
Удаляйте исходные данные. Если рабочая книга содержит исходный набор данных и сводную таблицу, размер ее файла увеличивается вдвое. Поэтому можете спокойно удалить исходные данные, и это совершенно не отразится на функциональности вашей сводной таблицы. После удаления исходных данных не забудьте сохранить сжатую версию файла рабочей книги. После удаления исходных данных можно использовать сводную таблицу в обычном режиме. Единственная проблема заключается в невозможности обновления сводной таблицы из-за отсутствия исходных данных. Если же вам понадобятся исходные данные, щелкните дважды на пересечении строки и столбца в области общих итогов (на рис. 7 это ячейка В18). При этом Excel выгружает содержимое кеша сводных таблиц на новый рабочий лист.
Совет 8. Создание автоматически развертываемого диапазона данных
Наверняка вы не раз сталкивались с ситуациями, когда приходилось ежедневно обновлять отчеты сводных таблиц. Необходимость в этом чаще всего возникает тогда, когда в источник данных постоянно добавляются новые записи. В таких случаях придется повторно определить используемый ранее диапазон, прежде чем новые записи будут добавлены в новую сводную таблицу. Повторное определение исходного диапазона данных для сводной таблицы не представляет особого труда, но, когда этим приходится заниматься часто, подобная процедура становится весьма утомительной.
Решение проблемы заключается в том, чтобы преобразовать исходный диапазон данных в таблицу еще до создания сводной таблицы. Благодаря таблицам Excel можно создать именованный диапазон, который может автоматически расширяться либо сужаться в зависимости от объема находящихся в нем данных. Также можно связать любой компонент, диаграмму, сводную таблицу либо формулу с диапазоном, в результате чего у вас появится возможность отслеживать изменения в наборе данных.
Для реализации описанной методики выделите исходные данные, а затем щелкните на значке таблицы, находящемся на вкладке Вставка (рис. или нажмите Ctrl+T (Т английское). Щелкните ОК в открывшемся окне. Обратите внимание на то, что, хотя диапазон исходных данных в сводной таблице переопределять не нужно, но при добавлении исходных данных в диапазон в сводной таблице все равно придется щелкнуть на кнопке Обновить.
Рис. 8. Преобразование исходных данных в таблицу
Совет 9. Сравнение обычных таблиц с помощью сводной таблицы
Если вы выполняете сравнительный анализ двух различных таблиц, удобно воспользоваться сводной таблицей, что существенно сэкономит время. Предположим, имеются две таблицы, в которых отображаются сведения о заказчиках за 2011 и 2012 годы (рис. 9). Небольшие размеры этих таблиц приведены здесь исключительно в качестве примеров. На практике используются таблицы, имеющие гораздо большие размеры.
Рис. 9. Вам предстоит сравнить эти две таблицы
В процессе сравнения создается одна таблица, на основе которой создается сводная таблица. Убедитесь в том, что у вас имеется способ пометить данные, относящиеся к этим таблицам. В рассматриваемом примере для этого используется столбец Фискальный год (рис. 10). После объединения двух таблиц воспользуйтесь полученным комбинированным набором данных для создания новой сводной таблицы. Отформатируйте сводную таблицу таким образом, чтобы в качестве тега таблицы (идентификатор, указывающий на происхождение таблицы) использовалась область столбцов сводной таблицы. Как показано на рис. 11, годы находятся в области столбцов, а сведения о заказчиках — в области строк. В области данных содержатся объемы продаж для каждого заказчика.
Рис. 10. На основе двух исходных таблиц создается одна результирующая
Рис. 11. Создайте сводную таблицу, которая позволяет визуально сравнить два набора данных
Совет 10. Автоматическая фильтрация сводной таблицы
Как известно, в сводных таблицах нельзя применять автофильтры. Тем не менее существует трюк, позволяющий включить автофильтры в сводную таблицу. Принцип использования этой методики заключается в том, чтобы поместить указатель мыши справа от последнего заголовка сводной таблицы (ячейка D3 на рис. 12), а затем перейдите на ленту и выбрать команду Данные -> Фильтр. Начиная с этого момента в вашей сводной таблице появляется автофильтр! Например, вы сможете выбрать всех заказчиков с уровнем транзакций выше среднего. С помощью автофильтров в сводную таблицу добавляется дополнительный уровень аналитики.
Рис. 12. Трюк по использованию автофильтра в сводной таблице
Совет 11. Преобразование наборов данных, отображаемых в сводных таблицах
Наилучший макет для исходных данных, преобразованных в сводную таблицу, — это табличный макет. Этому виду макета присущи следующие признаки: отсутствуют пустые строки либо столбцы, каждый столбец имеет заголовок, каждому полю соответствуют значения в каждой строке, а столбцы не содержат повторяющихся групп данных. На практике часто встречаются наборы данных, напоминающие то, что показано на рис. 13. Как видите, названия месяцев отображаются в строке вдоль верхнего края таблицы, выполняя двойную функцию — подписей столбцов и фактических данных. В сводной таблице, созданной на основе подобной таблицы, это приведет к тому, что придется управлять 12 полями, каждое из которых представляет отдельный месяц.
Рис. 13. Эту таблицу в матричном стиле следует преобразовать в табличный набор данных
Для устранения этой проблем можно воспользоваться в качестве промежуточного этапа сводной таблицей с несколькими консолидированными диапазонами (подробнее см. Сводная таблица на основе нескольких листов или диапазонов консолидации). Для преобразования набора данных, имеющего матричный стиль, в набор данных, более подходящий для создания сводных таблиц, выполните следующие действия.
Шаг 1. Объединение всех полей, не относящихся к области столбцов, в один столбец. Для создания сводных таблиц с несколькими консолидированными диапазонами следует создать единственный столбец размерности. В рассматриваемом примере все, что не относится к полю месяца, рассматривается как размерность. Поэтому поля Рынок сбыта и Описание услуги следует объединить в один столбец. Для объединения полей в один столбец просто введите формулу, которая выполняет конкатенацию этих двух полей, используя точку с запятой в качестве разделителя. Присвойте новому столбцу имя. Введенная формула отображается в строке формул (рис. 14).
Рис. 14. Результат конкатенации столбцов Рынок сбыта и Описание услуги
После создания конкатенированного столбца преобразуйте формулы в значения. Для этого выделите только что созданный столбец, нажмите Ctrl+C, после чего выполните команду Вставить -> Специальная вставка -> Значения. Теперь можно удалить столбцы Рынок сбыта и Описание услуги (рис. 15).
Рис. 15. Удалены столбцы Рынок сбыта и Описание услуги
Шаг 2. Создание сводной таблицы с несколькими диапазонами консолидации. Теперь нужно вызвать знакомый многим пользователям по предыдущим версиям Excel мастер сводных таблиц и диаграмм. Для вызова этого мастера нажмите комбинацию клавиш Alt+D+P. К сожалению, эта комбинация клавиш предназначена для англоязычной версии Excel 2013. В русскоязычной версии ей соответствует комбинация клавиш Alt+Д+Н. Но она по неизвестным мне причинам не работает. Тем не менее, можно вывести старый добрый мастер сводных таблиц на панель быстрого доступа, см. Использование мастера сводных таблиц. После запуска мастера установите переключатель В нескольких диапазонах консолидации. Кликните Далее. Установите переключатель Создать поля страницы и щелкните Далее. Определите рабочий диапазон и кликните Готово (подробнее см. Сводная таблица на основе нескольких листов или диапазонов консолидации). Вы создадите сводную таблицу (рис. 16).
Рис. 16. Сводная на основе нескольких диапазонов консолидации
Шаг 3. Дважды щелкните на пересечении строки и столбца в строке общих итогов. На этом этапе в вашем распоряжении окажется сводная таблица (рис. 16), включающая несколько диапазонов консолидации, которая является практически бесполезной. Выберите ячейку, находящуюся на пересечении строки и столбца общих итогов, и дважды щелкните на ней (в нашем примере это ячейка N88). Вы получите новый лист, структура которого напоминает структуру, показанную на рис. 17. Фактически этот лист представляет собой транспонированную версию исходных данных.
Рис. 17. Исходный набор данных был транспонирован
Шаг 4. Разбиение столбца Строка на отдельные поля. Осталось разбить столбец Строка на отдельные поля (вернуться к изначальной структуре). Добавьте один пустой столбец сразу же после столбца Строка. Выделите столбец А, а затем перейдите на вкладку ленты Данные и щелкните на кнопке Текст по столбцам. На экране появится диалоговое окно Мастер распределения текстов по столбцам. На первом шаге выберите переключатель С разделителями и щелкните на кнопке Далее. В следующем шаге выберите переключатель точка с запятой и щелкните Готово. Отформатируйте текст, добавьте заголовок и превратите исходные данные в таблицу путем нажатия Ctrl+T (рис. 18).
Рис. 18. Этот набор данных идеально подходит для создания сводной таблицы (сравните с рис. 13)
Совет 12. Включение двух числовых форматов в сводную таблицу
А теперь рассмотрим ситуацию, когда нормализованный набор данных затрудняет построение удобной для анализа сводной таблицы. Примером может служить показанная на рис. 19 таблица, которая включает два разных показателя для каждого рынка сбыта. Обратите внимание на столбец D, который идентифицирует показатель.
Рис. 19. Эта таблица включает несколько типов данных для одного поля из области значений
Несмотря на то что эта таблица может служить примером неплохого форматирования, не все так хорошо. Обратите внимание на то, что одни показатели должны отображаться в числовом формате, а другие — в процентном. Но в исходной базе данных поле Значение имеет тип Double. При создании сводной таблицы на основе набора данных невозможно присвоить два разных числовых формата одному полю Значение. Здесь действует простое правило: одно поле соответствует одному числовому формату. Попытка назначить числовой формат полю, которому был присвоен процентный формат, приведет к тому, что процентные значения превратятся в обычные числа, которые завершаются знаком процента (рис. 20).
Рис. 20. Каждому показателю можно присвоить только один числовой формат
Для решения этой проблемы применяется пользовательский числовой формат, который любое значение, большее 1,5, форматирует как число. Если же значение меньше 1,5, оно форматируется как процент. В диалоговом окне Формат ячеек выберите вкладку (все форматы) и в поле Тип введите следующую форматирующую строку (рис. 21): $# ##0; 0,0%
Рис. 21. Примените пользовательский числовой формат, в котором любые числа, меньшие 1,5, форматируются как проценты
Полученный результат показан на рис. 22. Как видите, теперь каждый показатель отформатирован корректно. Конечно, приведенный в этом совете рецепт не универсален. Скорее, он указывает направление, в котором стоит экспериментировать.
Рис. 22. Два числовых формата в одном поле данных!
Совет 13. Создание частотного распределения для сводной таблицы
Если вы когда-либо создавали частотные распределения с помощью функции ExcelЧастота, то, наверное, знаете, что это весьма непростая задача. Более того, после изменений диапазонов данных все приходится начинать сначала. В этом разделе вы научитесь создавать простые частотные распределения с помощью обычной сводной таблицы. Вначале создайте сводную таблицу, в области строк которой находятся данные. Обратите внимание на рис. 23, где в области строк находится поле Объем продаж.
Рис. 23. Поместите данные в область строк
Щелкните правой кнопкой мыши на любом значении в области строк и в контекстном меню выберите параметр Группировать. В диалоговом окне Группирование (рис. 24) определите значения параметров, определяющих начало, конец и шаг частотного распределения. Щелкните ОК.
Рис. 24. В диалоговом окне Группирование настройте параметры частотного распределения
Если в сводную таблицу добавить поле Заказчик (рис. 25), получим частотное распределение транзакций заказчиков относительно размера заказов (в долларах).
Рис. 25. Теперь в вашем распоряжении оказалось распределение транзакций заказчиков в соответствии с размерами заказов (в долларах)
Преимущество описанной методики заключается в том, что фильтр отчета сводной таблицы может применяться для интерактивной фильтрации данных, основанных на других столбцах, таких как Регион и Рынок сбыта. У пользователя также имеется возможность быстрой настройки интервалов частотного распределения путем щелчка правой кнопкой мыши на любом числе в области строк с последующим выбором параметра Группировать. Для наглядности представления может быть добавлена сводная диаграмма (рис. 26).
Рис. 26. Сводная диаграмма частотного распределения
Совет 14. Использование сводной таблицы для распределения набора данных по листам книги
Аналитикам часто приходится создавать различные отчеты сводных таблиц для каждого региона, рынка сбыта, менеджера и т.п. Выполнение этой задачи обычно подразумевает длительный процесс копирования сводной таблицы на новый лист и последующее изменение поля фильтра с учетом соответствующего региона и менеджера. Этот процесс выполняется вручную и повторяется для каждого вида анализа. Но вообще-то создание отдельных сводных таблиц можно поручить Excel. В результате применения параметра Отобразить страницы фильтра отчета автоматически создается отдельная сводная таблица для каждого элемента, находящегося в области полей фильтра. Для использования этой функции просто создайте сводную таблицу, включающую поле фильтра (рис. 27). Поместите курсор в любом месте сводной таблицы и на вкладке Анализ в группе команд Сводная таблица щелкните на раскрывающемся списке Параметры (рис. 28). Затем щелкните на кнопке Отобразить страницы фильтра отчета.
Рис. 27. Начните с создания сводной таблицы, которая содержит поле фильтра
Рис. 28. Щелкните на кнопке Отобразить страницы фильтра отчета
В появившемся диалоговом окне (рис. 29) можно выбрать поле фильтра, для которого будут созданы отдельные сводные таблицы. Выберите подходящее поле фильтра и щелкните ОК.
Рис. 29. Диалоговое окно Отображение страниц фильтра отчета
Для каждого элемента поля фильтра будет создана сводная таблица, помещенная на отдельный лист (рис. 30). Обратите внимание на то, что ярлычки листов называются так же, как и элементы поля фильтра. Учтите, что параметр Отобразить страницы фильтра может применяться к полям фильтра поочередно.
Рис. 30. Отдельная сводная таблица для каждого рынка сбыта
Совет 15. Использование сводной таблицы для распределения набора данных по отдельным книгам
В совете 14 мы воспользовались специальной опцией для разделения сводных таблиц по рынкам сбыта на разных листах рабочей книги. Если же вам нужно разделить исходные данные по разным рынкам сбыта в отдельных книгах, можно воспользоваться небольшим кодом VBA. Для начала поместите поле, на основе которого будет выполняться фильтрация, в область полей фильтра. Поместите поле Объем продаж в область значений (рис. 31). Предлагаемый код VBA поочередно выбирает каждый элемент ФИЛЬТРА и вызывает функцию Показать детали, создавая новый лист с данными. Затем этот лист сохраняется в новой рабочей книге
Рис. 31. Исходная сводная таблица
Код VBA.
Sub ExplodeTable()
Dim PvtItem As PivotItem
Dim PvtTable As PivotTable
Dim strfield As PivotField
‘Изменение переменных в соответствии со сценарием
ConststrFieldName = «Рынок сбыта» ‘<—Изменение имени поля
Const strTriggerRange = «A4» ‘<—Изменение диапазона триггера
‘Изменение названия сводной таблицы (при необходимости)
SetPvtTable = ActiveSheet.PivotTables(«PivotTable1») ‘<—Изменение названия сводной
‘Циклический обход каждого элемента выделенного поля
For Each PvtItem In PvtTable.PivotFields(strFieldName).PivotItems
PvtTable.PivotFields(strFieldName).CurrentPage = PvtItem.Name
Range(strTriggerRange).ShowDetail = True
‘Присваивание имени временному листу
ActiveSheet.Name = «TempSheet»
‘Копирование данных в новую книгу и удаление временного листа
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs _
Filename:=ThisWorkbook.Path & «» & PvtItem.Name & «.xlsx»
Sheets(«Tempsheet»).Delete
Application.DisplayAlerts = True
Введите этот код в новый модуль VBA. Проверьте значения следующих констант и переменных и в случае необходимости измените их:
- Const strFieldName. Имя поля, используемого для разделения данных. Другими словами, это поле, которое помещается в область фильтра/страниц сводной таблицы.
- Const strTriggerRange. Ячейка триггера, в котором хранится единственное число из области данных сводной таблицы. В нашем случае ячейкой триггера является А4 (см. рис. 31).
В результате выполнения кода VBA данные для каждого рынка сбыта будут сохранены в отдельной книге.
Создание отчета с помощью мастера сводных таблиц
У нас есть тренировочная таблица с данными:
Каждая строка дает нам исчерпывающую информацию об одной сделке:
- в каком магазине были продажи;
- какого товара и на какую сумму;
- кто из продавцов постарался;
- когда (число, месяц).
Если это огромная сеть магазинов и продажи идут, то в течение одного квартала размер таблицы станет ужасающим. Проанализировать данные в сотне строк будет очень сложно. А на составление отчета уйдет не один день. В такой ситуации сводная таблица просто необходима.
Создам отчет с помощью мастера сводных таблиц. В новых версиях Excel он почему-то спрятано глубоко в настройках:
- Выберите «Файл»-«Параметры»-«Панель быстрого доступа».
- В выпадающем списке левой колонки: «Выбрать команду из» укажите «Все команды».
- В левой колонке найдите по алфавитному порядку и выделите: «Мастер сводных таблиц и диаграмм». Нажмите на кнопку между колонками: «Добавить» чтобы инструмент переместился в правую колонку и нажмите ОК.
Теперь инструмент находится в панели быстрого доступа, а значит всегда под рукой.
- Ставим курсор в любом месте таблицы с данными. Вызываем мастер сводных таблиц, нажимая на соответствующий инструмент, который теперь уже расположенный напанели быстрого доступа.
- На первом шаге выбираем источник данных для формирования сводной таблицы. Нажимаем «Далее». Чтобы собрать информацию в сводный отчет из нескольких листов, выбираем: «в списке или базе данных Microsoft Excel».
- На втором шаге определяем диапазон данных, на основании которых будет строиться отчет. Так как у нас стоит курсор в таблице, диапазон обозначится автоматически.
- На третьем шаге Excel предлагает выбрать, куда поместить сводную таблицу. Жмем «Готово» и открывается макет.
- Нужно обозначить поля для отображения в отчете. Допустим, мы хотим узнать суммы продаж по каждому продавцу. Ставим галочки – получаем:
Готовый отчет можно форматировать, изменять.
Некоторые секреты форматирования
Когда мы сводим в отчет большой объем данных, для выводов и принятия каких-то решения может понадобиться группировка. Допустим, нам нужно увидеть итоги за месяц или квартал.
Группировка по дате в сводной таблице Excel:
- Источник информации – отчет с данными.
- Так как нам нужна группировка по дате, выделяем любую ячейку с соответствующим значением. Щелкаем правой кнопкой мыши.
- Из выпавшего меню выбираем «Группировку». Откроется инструмент вида:
- В полях «Начиная с» и «По» Excel автоматически проставил начальную и конечную даты диапазона данных. Определяемся с шагом группировки. Для нашего примера – либо месяцы, либо кварталы. Остановимся на месяцах.
Получаем отчет, в котором четко видны суммы продаж по месяцам. Поэкспериментируем и установим шаг – «Кварталы». Результат – сводная таблица вида:
Если фамилия продавцов для анализа деятельности сети магазинов не важна, можем сформировать отчет с поквартальной прибылью.
Чтобы убрать результаты группировки, необходимо щелкнуть по ячейке с данными правой кнопкой мыши и нажать разгруппировать. Либо выбрать данный параметр в меню «Структура».
Детализация информации
Огромные сводные таблицы, которые составляются на основании «чужих» таблиц, периодически нуждаются в детализации. Мы не знаем, откуда взялась сумма в конкретной ячейке Excel. Но можно это выяснить, если разбить сводную таблицу на несколько листов.
- В марте продано двуспальных кроватей на сумму 23 780 у.е. Откуда взялась эта цифра. Выделяем ячейку с данной суммой и щелкаем правой кнопкой мыши и выбираем опцию:
- На новом листе откроется таблица с данными о продажах товара.
Мы можем переместить всю сводную таблицу на новый лист, выбрав на вкладке «Действия» кнопку «Переместить».
По умолчанию в сводную таблицу помещается абсолютно вся информация из того столбца, который мы добавляем в отчет.
В нашем примере – ВСЕ товары, ВСЕ даты, ВСЕ суммы и магазины. Возможно, пользователю не нужны некоторые элементы. Они просто загромождают отчет и мешают сосредоточиться на главном. Уберем ненужные элементы.
- Нажимаем на стрелочку у названия столбца, где будем корректировать количество информации.
- Выбираем из выпадающего меню название поля. В нашем примере – это название товара или дата. Мы остановимся на названии.
- Устанавливаем фильтр по значению. Исключим из отчета информацию по односпальным кроватям – уберем флажок напротив названия товара.
Жмем ОК – сводная таблица меняется.
При выполнении определенных задач в Excel иногда приходится иметь дело с несколькими таблицами, которые к тому же связаны между собой. То есть, данные из одной таблицы подтягиваются в другие и при их изменении пересчитываются значения во всех связанных табличных диапазонах.
Связанные таблицы очень удобно использовать для обработки большого объема информации. Располагать всю информацию в одной таблице, к тому же, если она не однородная, не очень удобно. С подобными объектами трудно работать и производить по ним поиск. Указанную проблему как раз призваны устранить связанные таблицы, информация между которыми распределена, но в то же время является взаимосвязанной. Связанные табличные диапазоны могут находиться не только в пределах одного листа или одной книги, но и располагаться в отдельных книгах (файлах). Последние два варианта на практике используют чаще всего, так как целью указанной технологии является как раз уйти от скопления данных, а нагромождение их на одной странице принципиально проблему не решает. Давайте узнаем, как создавать и как работать с таким видом управления данными.
Создание связанных таблиц
Прежде всего, давайте остановимся на вопросе, какими способами существует возможность создать связь между различными табличными диапазонами.
Способ 1: прямое связывание таблиц формулой
Самый простой способ связывания данных – это использование формул, в которых имеются ссылки на другие табличные диапазоны. Он называется прямым связыванием. Этот способ интуитивно понятен, так как при нем связывание выполняется практически точно так же, как создание ссылок на данные в одном табличном массиве.
Посмотрим, как на примере можно образовать связь путем прямого связывания. Имеем две таблицы на двух листах. На одной таблице производится расчет заработной платы с помощью формулы путем умножения ставки работников на единый для всех коэффициент.
На втором листе расположен табличный диапазон, в котором находится перечень сотрудников с их окладами. Список сотрудников в обоих случаях представлен в одном порядке.
Нужно сделать так, чтобы данные о ставках из второго листа подтягивались в соответствующие ячейки первого.
- На первом листе выделяем первую ячейку столбца «Ставка». Ставим в ней знак «=». Далее кликаем по ярлычку «Лист 2», который размещается в левой части интерфейса Excel над строкой состояния.
- Происходит перемещения во вторую область документа. Щелкаем по первой ячейке в столбце «Ставка». Затем кликаем по кнопке Enter на клавиатуре, чтобы произвести ввод данных в ячейку, в которой ранее установили знак «равно».
- Затем происходит автоматический переход на первый лист. Как видим, в соответствующую ячейку подтягивается величина ставки первого сотрудника из второй таблицы. Установив курсор на ячейку, содержащую ставку, видим, что для вывода данных на экран применяется обычная формула. Но перед координатами ячейки, откуда выводятся данные, стоит выражение «Лист2!», которое указывает наименование области документа, где они расположены. Общая формула в нашем случае выглядит так:
=Лист2!B2
- Теперь нужно перенести данные о ставках всех остальных работников предприятия. Конечно, это можно сделать тем же путем, которым мы выполнили поставленную задачу для первого работника, но учитывая, что оба списка сотрудников расположены в одинаковом порядке, задачу можно существенно упростить и ускорить её решение. Это можно сделать, просто скопировав формулу на диапазон ниже. Благодаря тому, что ссылки в Excel по умолчанию являются относительными, при их копировании происходит сдвиг значений, что нам и нужно. Саму процедуру копирования можно произвести с помощью маркера заполнения.
Итак, ставим курсор в нижнюю правую область элемента с формулой. После этого курсор должен преобразоваться в маркер заполнения в виде черного крестика. Выполняем зажим левой кнопки мыши и тянем курсор до самого низа столбца.
- Все данные из аналогичного столбца на Листе 2 были подтянуты в таблицу на Листе 1. При изменении данных на Листе 2 они автоматически будут изменяться и на первом.
Способ 2: использование связки операторов ИНДЕКС — ПОИСКПОЗ
Но что делать, если перечень сотрудников в табличных массивах расположен не в одинаковом порядке? В этом случае, как говорилось ранее, одним из вариантов является установка связи между каждой из тех ячеек, которые следует связать, вручную. Но это подойдет разве что для небольших таблиц. Для массивных диапазонов подобный вариант в лучшем случае отнимет очень много времени на реализацию, а в худшем – на практике вообще будет неосуществим. Но решить данную проблему можно при помощи связки операторов ИНДЕКС – ПОИСКПОЗ. Посмотрим, как это можно осуществить, связав данные в табличных диапазонах, о которых шел разговор в предыдущем способе.
- Выделяем первый элемент столбца «Ставка». Переходим в Мастер функций, кликнув по пиктограмме «Вставить функцию».
- В Мастере функций в группе «Ссылки и массивы» находим и выделяем наименование «ИНДЕКС».
- Данный оператор имеет две формы: форму для работы с массивами и ссылочную. В нашем случае требуется первый вариант, поэтому в следующем окошке выбора формы, которое откроется, выбираем именно его и жмем на кнопку «OK».
- Выполнен запуск окошка аргументов оператора ИНДЕКС. Задача указанной функции — вывод значения, находящегося в выбранном диапазоне в строке с указанным номером. Общая формула оператора ИНДЕКС такова:
=ИНДЕКС(массив;номер_строки;)
«Массив» — аргумент, содержащий адрес диапазона, из которого мы будем извлекать информацию по номеру указанной строки.
«Номер строки» — аргумент, являющийся номером этой самой строчки. При этом важно знать, что номер строки следует указывать не относительно всего документа, а только относительно выделенного массива.
«Номер столбца» — аргумент, носящий необязательный характер. Для решения конкретно нашей задачи мы его использовать не будем, а поэтому описывать его суть отдельно не нужно.
Ставим курсор в поле «Массив». После этого переходим на Лист 2 и, зажав левую кнопку мыши, выделяем все содержимое столбца «Ставка».
- После того, как координаты отобразились в окошке оператора, ставим курсор в поле «Номер строки». Данный аргумент мы будем выводить с помощью оператора ПОИСКПОЗ. Поэтому кликаем по треугольнику, который расположен слева от строки функций. Открывается перечень недавно использованных операторов. Если вы среди них найдете наименование «ПОИСКПОЗ», то можете кликать по нему. В обратном случае кликайте по самому последнему пункту перечня – «Другие функции…».
- Запускается стандартное окно Мастера функций. Переходим в нем в ту же самую группу «Ссылки и массивы». На этот раз в перечне выбираем пункт «ПОИСКПОЗ». Выполняем щелчок по кнопке «OK».
- Производится активация окошка аргументов оператора ПОИСКПОЗ. Указанная функция предназначена для того, чтобы выводить номер значения в определенном массиве по его наименованию. Именно благодаря данной возможности мы вычислим номер строки определенного значения для функции ИНДЕКС. Синтаксис ПОИСКПОЗ представлен так:
=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;)
«Искомое значение» — аргумент, содержащий наименование или адрес ячейки стороннего диапазона, в которой оно находится. Именно позицию данного наименования в целевом диапазоне и следует вычислить. В нашем случае в роли первого аргумента будут выступать ссылки на ячейки на Листе 1, в которых расположены имена сотрудников.
«Просматриваемый массив» — аргумент, представляющий собой ссылку на массив, в котором выполняется поиск указанного значения для определения его позиции. У нас эту роль будет исполнять адрес столбца «Имя» на Листе 2.
«Тип сопоставления» — аргумент, являющийся необязательным, но, в отличие от предыдущего оператора, этот необязательный аргумент нам будет нужен. Он указывает на то, как будет сопоставлять оператор искомое значение с массивом. Этот аргумент может иметь одно из трех значений: -1; 0; 1. Для неупорядоченных массивов следует выбрать вариант «0». Именно данный вариант подойдет для нашего случая.
Итак, приступим к заполнению полей окна аргументов. Ставим курсор в поле «Искомое значение», кликаем по первой ячейке столбца «Имя» на Листе 1.
- После того, как координаты отобразились, устанавливаем курсор в поле «Просматриваемый массив» и переходим по ярлыку «Лист 2», который размещен внизу окна Excel над строкой состояния. Зажимаем левую кнопку мыши и выделяем курсором все ячейки столбца «Имя».
- После того, как их координаты отобразились в поле «Просматриваемый массив», переходим к полю «Тип сопоставления» и с клавиатуры устанавливаем там число «0». После этого опять возвращаемся к полю «Просматриваемый массив». Дело в том, что мы будем выполнять копирование формулы, как мы это делали в предыдущем способе. Будет происходить смещение адресов, но вот координаты просматриваемого массива нам нужно закрепить. Он не должен смещаться. Выделяем координаты курсором и жмем на функциональную клавишу F4. Как видим, перед координатами появился знак доллара, что означает то, что ссылка из относительной превратилась в абсолютную. Затем жмем на кнопку «OK».
- Результат выведен на экран в первую ячейку столбца «Ставка». Но перед тем, как производить копирование, нам нужно закрепить ещё одну область, а именно первый аргумент функции ИНДЕКС. Для этого выделяем элемент колонки, который содержит формулу, и перемещаемся в строку формул. Выделяем первый аргумент оператора ИНДЕКС (B2:B7) и щелкаем по кнопке F4. Как видим, знак доллара появился около выбранных координат. Щелкаем по клавише Enter. В целом формула приняла следующий вид:
=ИНДЕКС(Лист2!$B$2:$B$7;ПОИСКПОЗ(Лист1!A4;Лист2!$A$2:$A$7;0))
- Теперь можно произвести копирование с помощью маркера заполнения. Вызываем его тем же способом, о котором мы говорили ранее, и протягиваем до конца табличного диапазона.
- Как видим, несмотря на то, что порядок строк у двух связанных таблиц не совпадает, тем не менее, все значения подтягиваются соответственно фамилиям работников. Этого удалось достичь благодаря применению сочетания операторов ИНДЕКС—ПОИСКПОЗ.
Функция ИНДЕКС в ЭкселеФункция ПОИСКПОЗ в Экселе
Способ 3: выполнение математических операций со связанными данными
Прямое связывание данных хорошо ещё тем, что позволяет не только выводить в одну из таблиц значения, которые отображаются в других табличных диапазонах, но и производить с ними различные математические операции (сложение, деление, вычитание, умножение и т.д.).
Посмотрим, как это осуществляется на практике. Сделаем так, что на Листе 3 будут выводиться общие данные заработной платы по предприятию без разбивки по сотрудникам. Для этого ставки сотрудников будут подтягиваться из Листа 2, суммироваться (при помощи функции СУММ) и умножаться на коэффициент с помощью формулы.
- Выделяем ячейку, где будет выводиться итог расчета заработной платы на Листе 3. Производим клик по кнопке «Вставить функцию».
- Следует запуск окна Мастера функций. Переходим в группу «Математические» и выбираем там наименование «СУММ». Далее жмем по кнопке «OK».
- Производится перемещение в окно аргументов функции СУММ, которая предназначена для расчета суммы выбранных чисел. Она имеет нижеуказанный синтаксис:
=СУММ(число1;число2;…)
Поля в окне соответствуют аргументам указанной функции. Хотя их число может достигать 255 штук, но для нашей цели достаточно будет всего одного. Ставим курсор в поле «Число1». Кликаем по ярлыку «Лист 2» над строкой состояния.
- После того, как мы переместились в нужный раздел книги, выделяем столбец, который следует просуммировать. Делаем это курсором, зажав левую кнопку мыши. Как видим, координаты выделенной области тут же отображаются в поле окна аргументов. Затем щелкаем по кнопке «OK».
- После этого мы автоматически перемещаемся на Лист 1. Как видим, общая сумма размера ставок работников уже отображается в соответствующем элементе.
- Но это ещё не все. Как мы помним, зарплата вычисляется путем умножения величины ставки на коэффициент. Поэтому снова выделяем ячейку, в которой находится суммированная величина. После этого переходим к строке формул. Дописываем к имеющейся в ней формуле знак умножения (*), а затем щелкаем по элементу, в котором располагается показатель коэффициента. Для выполнения вычисления щелкаем по клавише Enter на клавиатуре. Как видим, программа рассчитала общую заработную плату по предприятию.
- Возвращаемся на Лист 2 и изменяем размер ставки любого работника.
- После этого опять перемещаемся на страницу с общей суммой. Как видим, из-за изменений в связанной таблице результат общей заработной платы был автоматически пересчитан.
Способ 4: специальная вставка
Связать табличные массивы в Excel можно также при помощи специальной вставки.
- Выделяем значения, которые нужно будет «затянуть» в другую таблицу. В нашем случае это диапазон столбца «Ставка» на Листе 2. Кликаем по выделенному фрагменту правой кнопкой мыши. В открывшемся списке выбираем пункт «Копировать». Альтернативной комбинацией является сочетание клавиш Ctrl+C. После этого перемещаемся на Лист 1.
- Переместившись в нужную нам область книги, выделяем ячейки, в которые нужно будет подтягивать значения. В нашем случае это столбец «Ставка». Щелкаем по выделенному фрагменту правой кнопкой мыши. В контекстном меню в блоке инструментов «Параметры вставки» щелкаем по пиктограмме «Вставить связь».
Существует также альтернативный вариант. Он, кстати, является единственным для более старых версий Excel. В контекстном меню наводим курсор на пункт «Специальная вставка». В открывшемся дополнительном меню выбираем позицию с одноименным названием.
- После этого открывается окно специальной вставки. Жмем на кнопку «Вставить связь» в нижнем левом углу ячейки.
- Какой бы вариант вы не выбрали, значения из одного табличного массива будут вставлены в другой. При изменении данных в исходнике они также автоматически будут изменяться и во вставленном диапазоне.
Урок: Специальная вставка в Экселе
Способ 5: связь между таблицами в нескольких книгах
Кроме того, можно организовать связь между табличными областями в разных книгах. При этом используется инструмент специальной вставки. Действия будут абсолютно аналогичными тем, которые мы рассматривали в предыдущем способе, за исключением того, что производить навигацию во время внесений формул придется не между областями одной книги, а между файлами. Естественно, что все связанные книги при этом должны быть открыты.
- Выделяем диапазон данных, который нужно перенести в другую книгу. Щелкаем по нему правой кнопкой мыши и выбираем в открывшемся меню позицию «Копировать».
- Затем перемещаемся к той книге, в которую эти данные нужно будет вставить. Выделяем нужный диапазон. Кликаем правой кнопкой мыши. В контекстном меню в группе «Параметры вставки» выбираем пункт «Вставить связь».
- После этого значения будут вставлены. При изменении данных в исходной книге табличный массив из рабочей книги будет их подтягивать автоматически. Причем совсем не обязательно, чтобы для этого были открыты обе книги. Достаточно открыть одну только рабочую книгу, и она автоматически подтянет данные из закрытого связанного документа, если в нем ранее были проведены изменения.
Но нужно отметить, что в этом случае вставка будет произведена в виде неизменяемого массива. При попытке изменить любую ячейку со вставленными данными будет всплывать сообщение, информирующее о невозможности сделать это.
Изменения в таком массиве, связанном с другой книгой, можно произвести только разорвав связь.
Разрыв связи между таблицами
Иногда требуется разорвать связь между табличными диапазонами. Причиной этого может быть, как вышеописанный случай, когда требуется изменить массив, вставленный из другой книги, так и просто нежелание пользователя, чтобы данные в одной таблице автоматически обновлялись из другой.
Способ 1: разрыв связи между книгами
Разорвать связь между книгами во всех ячейках можно, выполнив фактически одну операцию. При этом данные в ячейках останутся, но они уже будут представлять собой статические не обновляемые значения, которые никак не зависят от других документов.
- В книге, в которой подтягиваются значения из других файлов, переходим во вкладку «Данные». Щелкаем по значку «Изменить связи», который расположен на ленте в блоке инструментов «Подключения». Нужно отметить, что если текущая книга не содержит связей с другими файлами, то эта кнопка является неактивной.
- Запускается окно изменения связей. Выбираем из списка связанных книг (если их несколько) тот файл, с которым хотим разорвать связь. Щелкаем по кнопке «Разорвать связь».
- Открывается информационное окошко, в котором находится предупреждение о последствиях дальнейших действий. Если вы уверены в том, что собираетесь делать, то жмите на кнопку «Разорвать связи».
- После этого все ссылки на указанный файл в текущем документе будут заменены на статические значения.
Способ 2: вставка значений
Но вышеперечисленный способ подходит только в том случае, если нужно полностью разорвать все связи между двумя книгами. Что же делать, если требуется разъединить связанные таблицы, находящиеся в пределах одного файла? Сделать это можно, скопировав данные, а затем вставив на то же место, как значения. Кстати, этим же способом можно проводить разрыв связи между отдельными диапазонами данных различных книг без разрыва общей связи между файлами. Посмотрим, как этот метод работает на практике.
- Выделяем диапазон, в котором желаем удалить связь с другой таблицей. Щелкаем по нему правой кнопкой мыши. В раскрывшемся меню выбираем пункт «Копировать». Вместо указанных действий можно набрать альтернативную комбинацию горячих клавиш Ctrl+C.
- Далее, не снимая выделения с того же фрагмента, опять кликаем по нему правой кнопкой мыши. На этот раз в списке действий щелкаем по иконке «Значения», которая размещена в группе инструментов «Параметры вставки».
- После этого все ссылки в выделенном диапазоне будут заменены на статические значения.
Как видим, в Excel имеются способы и инструменты, чтобы связать несколько таблиц между собой. При этом, табличные данные могут находиться на других листах и даже в разных книгах. При необходимости эту связь можно легко разорвать.
Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
Связь между таблицами Excel – это формула, которая возвращает данные с ячейки другой рабочей книги. Когда вы открываете книгу, содержащую связи, Excel считывает последнюю информацию с книги-источника (обновление связей)
Межтабличные связи в Excel используются для получения данных как с других листов рабочей книги, так и с других рабочих книг Excel. К примеру, у вас имеется таблица с расчетом итоговой суммы продаж. В расчете используются цены на продукт и объем продаж. В таком случае имеет смысл создать отдельную таблицу с данными по ценам, которые будут подтягиваться с помощью связей первой таблицы.
Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенную в скобки , имя листа с восклицательным знаком на конце и ссылку на ячейку.
Создание связей между рабочими книгами
- Открываем обе рабочие книги в Excel
- В исходной книге выбираем ячейку, которую необходимо связать, и копируем ее (сочетание клавиш Ctrl+С)
- Переходим в конечную книгу, щелкаем правой кнопкой мыши по ячейке, куда мы хотим поместить связь. Из выпадающего меню выбираем Специальная вставка
- В появившемся диалоговом окне Специальная вставка выбираем Вставить связь.
Есть еще один, более простой, вариант создания связи между таблицами. В ячейку, куда мы хотим вставить связь, ставим знак равенства (так же как и для обычной формулы), переходим в исходную книгу, выбираем ячейку, которую хотим связать, щелкаем Enter.
Вы можете использовать инструменты копирования и автозаполнения для формул связи так же, как и для обычных формул.
Прежде чем создавать связи между таблицами
Прежде чем вы начнете распространять знания на свои грандиозные идеи, прочитайте несколько советов по работе со связями в Excel:
Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, содержащих ссылки. Поэтому, используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами, в противном случае, документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать.
Автоматические вычисления. Исходная книга должна работать в режиме автоматического вычисления (установлено по умолчанию). Для переключения параметра вычисления перейдите по вкладке Формулы в группу Вычисление. Выберите Параметры вычислений –> Автоматически.
Избегайте циклические ссылки. Циклические связи – когда две рабочие книги содержат ссылки друг на друга – могут быть причиной медленного открытия и работы файла.
Обновление связей
Для ручного обновления связи между таблицами, перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи.
В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Обновить.
Разорвать связи в книгах Excel
Разрыв связи с источником приведет к замене существующих формул связи на значения, которые они возвращают. Например, связь =Цены!$B$4 будет заменена на 16. Разрыв связи нельзя отменить, поэтому прежде чем совершить операцию, рекомендую сохранить книгу.
Перейдите по вкладке Данные в группу Подключения. Щелкните по кнопке Изменить связи. В появившемся диалоговом окне Изменение связей, выберите интересующую вас связь и щелкните по кнопке Разорвать связь.
Если вы ещё не знакомы со сводными таблицами, то начните с этой статьи.
Создание модели данных
Создадим сводную таблицу на основе любой из имеющихся таблиц.
-
Выбираем в меню Вставка пункт Сводная таблица. В указанном диалоговом окне мы видим опцию Добавить эти данные в модель данных. Мы могли бы её выбрать, но я рекомендую другой, более удобный способ. Просто нажмите OK.
-
В появившейся панеле Поля сводной таблицы вы видите надпись ДРУГИЕ ТАБЛИЦЫ…
-
Нажмём её. Появится такой вопрос:
-
Отвечаем Да и видим, что в список полей добавились все наши таблицы:
-
Если вы начнёте выбирать поля, то через некоторое время в списке полей появится кнопка СОЗДАТЬ…
-
Нажмём её и создадим связи между нашими таблицами. Так создаётся связь между таблицей Orders и OrderLines. Обратите внимание, что Excel умеет создавать связь типа «один к одному» или «один ко многим». Причём первой надо указывать таблицу, где «много», в противном случае Excel ругается и предлагает поменять их местами.
-
Аналогично создаём другие связи.
-
В диалоговое окно Управление связями можно попасть через ленту АНАЛИЗ команда Отношения
-
Чтобы видеть больше полей на панеле Поля сводной таблицы, можно через кнопку Сервис (в виде шестерёнки) выбрать это представление:
-
Результат будет таким:
-
В результате все наши таблицы теперь связаны и вы можете сформировать, к примеру, такой отчёт:
Просто и удобно!
>
Финансы в Excel
Динамический источник данных сводной таблицы
Подробности Создано 06 Май 2014
Вложения:
При работе со сводными таблицами несколько раз сталкивался с проблемой, когда новые данные не попадали в отчет. Сводная таблица была основана на фиксированном диапазоне рабочего листа, при этом новые строки просто выходили за границы диапазона. Найти ошибку при этом очень сложно, так как сводный отчет обновляется, но строится на неполных данных. Предлагаем более-менее универсальные решения, позволяющие избежать подобных проблем.
В приложенном к статье примере показано 3 варианта построения сводного отчета на основе данных рабочего листа.
- Фиксированный диапазон
- «Умная таблица» Excel 2007
- Динамический именованный диапазон
Фиксированный диапазон
Стандартный интерфейс создания новой сводной таблицы Excel выводит диалог с запросом источника данных. Удобнее всего выделить нужный диапазон на рабочем листе при помощи мыши, после чего программа показывает ссылку в A1-адресации. Выделенного диапазона достаточно для создания пустой сводной таблицы. Внешний вид и данные отчета настраиваются стандартными средствами интерфейса.
В зависимости от практической задачи может потребоваться добавить новые данные в источник сводного отчета. Обычно добавляются новые строки. Это может происходить как при ручном вводе или копировании, так и при автоматизированном получении данных из внешних систем. После простого добавления данных вниз исходного диапазона Excel не включит эту новую строку в источник сводной таблицы. Обновление отчета не приведет к изменениям. Действительно, сводная таблица основана на заранее определенном фиксированном диапазоне данных, не включающих новые строки. Пример такой ситуации показан в файле-примере на листах Data и ReportData – строки 11 и 12 в отчет не попали:
Одним из вариантов решения проблемы является добавление новых строк в середину диапазона – при этом Excel корректно исправит ссылку на источник данных сводной таблицы.
На практике же обычно удобнее и проще заранее определить максимально возможный диапазон строк источника сводной таблицы, добавив про запас достаточное количество строк. В зависимости от задачи можно добавить как 10, так и 10000 строк, как ни странно, это почти не сказывается на производительности сводной таблицы. В файле-примере поменяйте источник данных сводной таблицы ReportData следующим образом:
Этот способ вполне годится для использования, если вы уверены, что запас пустых строк всегда покроет возможное новое количество данных. Зачастую этого гарантировать нельзя, особенно, если файл рассчитан на длительное использование и с ним работает несколько пользователей.
Создавать запас пустых строк в источнике данных можно также для старых сводных таблиц xls-формата. Здесь, правда, имеется небольшая недоработка в интерфейсе: если столбец хранит даты, а в исходных данных присутствуют пустые значения, сводный отчет не позволит применить к этому полю стандартную группировку по годам, кварталам, месяцам и т.д. Новые сводные таблицы xlsx-формата лишены этого недостатка.
«Умная таблица»
Начиная с версии Excel 2007, в интерфейсе рабочего листа стала доступна работа с так называемой «умной таблицей» (лента Вставка Таблица). Такая таблица имеет расширенные возможности по дизайну, собственную нотацию формул и может быть опубликована на сервере SharePoint для совместного доступа нескольким пользователям. В нашем случае важно, что «умная таблица» Excel может быть указана в качестве источника данных сводного отчета – можно указать ее по имени или выделить мышью (листы Table, ReportTable):
Добавление строк в «умную таблицу» не влияет на источник данных сводного отчета. Ссылка определяется по имени, поэтому анализ всегда проводится на полном объеме информации. Т.е. это вариант решения можно признать удобным в случае, когда исходные данные могут быть преобразованы в «умную таблицу». При ручном заполнении источника данных сводной таблицы этот вариант работы можно даже назвать приоритетным. Недостатком является несовместимость с xls-форматом, а также сложность при автоматизации импорта из внешних систем.
Динамический именованный диапазон
«Продвинутые» пользователи Excel умеют использовать именованные диапазоны рабочего листа. При помощи таких имен можно заменять ссылки в формулах или указывать источники данных. Обычные именованные диапазоны – это просто замена длинной ссылки в координатах рабочего листа на короткое имя. Так в примере на листе Data можно выделить область A1:D12, присвоить ей имя, а затем указать его в качестве источника данных сводной таблицы ReportData.
Результат будет совершенно такой же, как и при использовании ссылки на фиксированный диапазон. Т.е. проблемы с добавлением новых строк простой именованный диапазон не решает.
Немногие пользователи Excel знают, что в качестве именованного диапазона можно использовать не только простые ссылки на область рабочего листа, но и формулы. Такие именованные диапазоны обычно называют вычисляемыми или динамическими. Создание такого диапазона возможно только в Диспетчере имен (лента Формулы Диспетчер имен). При помощи функций вычисляемой адресации можно динамически изменять размер диапазона в зависимости от количество строк с данными.
Пример такого использования имени с формулой на листах Name и ReportName.
Формула имени source выглядит следующим образом:
=OFFSET(Name!$A$1;0;0;COUNT(Name!$A:$A)+1;COUNTIF(Name!$1:$1;»*»))
Функции COUNT() и COUNTIF() используются для подсчета непустых значений в диапазоне, COUNT() предназначена для числовых ячеек, COUNTIF() – для текстовых. В формуле вычисляется количество непустых строк для поля типа дата (столбец A) и количество столбцов по заголовкам полей (строка 1). К количеству столбцов добавляется единица, так как в диапазон входит также строка заголовков. Результирующая функция OFFSET() выдает прямоугольный диапазон с относительным смещением от левого верхнего угла рабочего листа (Name!$A$1). Если количество полей исходных данных не меняется, то вместо последнего параметра функции лучше явно указать это число:
=OFFSET(Name!$A$1;0;0;COUNT(Name!$A:$A)+1;4)
Добавив несколько заполненных строк вниз таблицы исходных данных, можно убедиться, что сводная таблица успешно их обрабатывает (по нажатию кнопки «Обновить»).
Динамический именованный диапазон можно признать самым универсальным способом определения источника сводной таблицы, так как он не требует специальных объектов («умная таблица») и работает даже в старом xls-формате. В приведенном примере имеется требование на наличие непустого идентифицирующего поля в исходном диапазоне. На самом деле его также можно обойти, используя дополнительные вычисления (например, добавив функцию COUNTBLANK()), главное, чтобы в результате был найден конец заполненного диапазона.
Смотри также
» Обработка больших объемов данных. Часть 3. Сводные таблицы
Третья статья, посвященная обработке больших объемов данных с помощью Excel, описывает преимущества использования сводных таблиц….
» Сводная таблица Excelfin.ru
Надстройка предназначена для создания сводных таблиц на основе нескольких диапазонов данных файла Excel. Пользовательский интерфейс в…
» Сводные таблицы
Первый интерфейс сводных таблиц, называемых также сводными отчеты, был включен в состав Excel еще в 1993м году (версии Excel 5.0). Несмотря на…
» Сводный отчет на основе нескольких таблиц Excel
В стандартном режиме Excel позволяет строить сводные отчеты на основе диапазона ячеек, расположенного на одном рабочем листе. Собрать…
» Обновление списков сводной таблицы
При работе со сводными таблицами, сохраненными в качестве отчетов и использующих обновляемые исходные данные, выпадающие списки полей…