Сборка данных со всех листов книги в одну таблицу
Постановка задачи
Допустим, что у нас есть книга с большим количеством листов, где на каждом листе находится таблица с данными по сделкам в этом городе:
Давайте будем исходить из следующих соображений:
- Структура и столбцов на всех листах одинаковая.
- Количество строк на всех листах разное.
- Листы могут в будущем добавляться или удаляться.
Наша задача — собрать все данные со всех листов в одну таблицу, чтобы потом с ней работать (фильтровать, сортировать, построить сводную и т.д.) Сделать это можно разными способами, но самыми удобными будут, пожалуй, Power Query и макросы.
Способ 1. Сборка данных с листов с помощью Power Query
Если вы ещё не сталкивались в своей работе с Power Query, то очень советую копнуть в этом направлении. Использование этой бесплатной и уже встроенной по умолчанию в Excel надстройки, способно полностью перевернуть весь ваш процесс сбора и анализа данных, упростив всё в разы. С задачей сбора данных с листов Power Query справляется весьма успешно.
Шаг 1. Подключаемся к файлу
Для начала, создадим новый пустой файл в Excel, куда и будут собираться данные.
Если у вас Excel 2010-2013 и вы установили Power Query как отдельную надстройку, то откройте вкладку Power Query, если у вас Excel 2016 или новее, то вкладку Данные (Data). Нажмите кнопку Получить данные / Создать запрос — Из файла — Книга Excel (Get Data / New Query — From file — From Excel) и укажите наш файл с исходными листами:
В появившемся окне Навигатора (Navigator) выберите слева любой лист и нажмите в правом нижнем углу кнопку Преобразовать данные (Transform Data) или Изменить (Edit):
Должно появиться окно редактора запросов Power Query, где отобразятся данные с выбранного листа. Поскольку нам нужен, на самом деле, не один лист, а все, то удалим в правой панели все шаги, кроме первого шага Источник (Source) используя крестик слева от названия шага:
То, что останется после удаления шагов — это список всех объектов, которые Power Query «видит» во внешних файлах, а это:
- листы (Sheet)
- «умные таблицы» (Table)
- именованные диапазоны (Defined Name)
- области печати (Print Area), которые, по сути, являются одним из видов именованного диапазона
Шаг 2. Отбираем нужные листы
В исходном файле может быть много всего лишнего, что нам не требуется собирать: случайные ненужные листы, служебные именованные диапазоны, побочные умные таблицы и т.п. Очень важно отфильтровать этот «информационный мусор», т.к. в будущем из-за любого подобного объекта наш запорс будет, скорее всего, вылетать с ошибкой или некорректно собирать данные. Для решения этой задачи можно использовать несколько подходов.
Во-первых, легко можно отфильтровать нужные объекты по типу по столбцу Kind. Например, если вам нужны только листы:
Во-вторых, если нам нужны только видимые листы, то дополнительно можно отфильтровать ещё по столбцу Hidden.
В-третьих, если вы точно знаете размер таблиц, которые вам нужны, то можно легко добавить к нашему списку вычисляемый столбец с формулой, выводящей количество столбцов или строк и использовать потом эти числа для отбора. Для этого выберем на вкладке Добавление столбца — Настраиваемый столбец (Add Column — Custom Column) и введём в открывшееся окно следующую формулу (с учётом регистра):
Для подсчёта количества строк можно использовать аналогичную функцию Table.RowCount. Получившийся столбец затем можно использовать для фильтрации «мусорных» таблиц.
В-четвёртых, можно извлечь с каждого листа содержимое любой ячейки (например, А1) и использовать его для отбора. Например, если там нет слова «Товар«, то это не наш лист. Для извлечения нужно будет также добавить вычисляемый столбец с такой конструкцией:
=[Data][Column1]{0}
Здесь:
- [Data] — имя столбца, где в каждой ячейке лежат таблицы с содержимым каждого листа (убийственная формулировка для рядового пользователя Excel, да, я знаю)
- [Column1] — имя столбца на листе, из которого мы хотим извлечь данные
- {0} — номер строки (считая с нуля), откуда мы хотим взять данные
После фильтрации «мусора» все добавленные вспомогательные столбцы можно, конечно же, спокойно удалить, оставив только колонки Name и Data.
Шаг 3. Разворачиваем таблицы
Теперь развернём содержимое таблиц в одно целое, используя кнопку с двойными стрелками в заголовке столбца Data, отключив флажок Использовать исходное имя столбца как префикс (Use original column name as prefix):
После нажатия на ОК Power Query соберёт для нас все данные в одну мегатаблицу со всех отобранных листов нашего файла:
Останется лишь «навести блеск», а именно:
- Поднять первую строку в шапку таблицы кнопкой Использовать первую строку в качестве заголовков (Use first row as headers) на вкладке Главная (Home).
- Переименовать первый столбец в Город двойным щелчком на заголовку.
- Удалить повторяющиеся шапки таблиц, попавшие в одну кучу вместе с данными, используя фильтр по столбцу Товар.
Всё. Осталось только дать нашему запросу подходящее имя (например, Сборка) в панели справа и выгрузить затем собранные данные обратно в Excel кнопкой Закрыть и загрузить на вкладке Главная (Home — Close & Load):
В будущем, при любых изменениях в исходном файле достаточно будет лишь обновить наш запрос, щелкнув по собранной таблице правой кнопкой мыши и выбрав команду Обновить (Refresh) или такой же кнопкой на вкладке Данные (Data) или сочетанием клавиш Ctrl+Alt+F5.
Плюсы такого подхода:
- Не нужно уметь программировать, всё делается быстро и почти без использования клавиатуры.
- Последовательность столбцов на разных листах может быть различной — это не играет роли, столбцы правильно встанут друг под друга в итоговой сборке.
- Можно быстро обновлять запрос при изменении исходных данных.
Минусы этого способа:
- Собираются только значения, т.е. формулы с исходных листов не сохраняются.
- Названия столбцов должны на всех листах совпадать с точностью до регистра.
- Нельзя выбрать какой именно диапазон берётся с каждого листа — это определяется автоматически (берётся всё, что есть).
- Для обновления нужен Excel 2016 или новее или установленная надстройка Power Query.
Способ 2. Сборка данных с листов макросом на VBA
Похожего результата можно добиться и с помощью более «классического» подохода — макросом на VBA. Для этого на вкладке Разработчик (Developer) нажмите кнпоку Visual Basic или воспользуйтесь сочетанием клавиш Alt+F11. В открывшемся окне добавьте новый модуль через меню Insert — Module и скопируйте туда текст вот такого макроса:
Sub CollectDataFromAllSheets() Dim ws As Worksheet Set wbCurrent = ActiveWorkbook Workbooks.Add Set wbReport = ActiveWorkbook 'копируем на итоговый лист шапку таблицы из первого листа wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1") 'проходим в цикле по всем листам исходного файла For Each ws In wbCurrent.Worksheets 'определяем номер последней строки на текущем листе и на листе сборки n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count 'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор: Set rngData = ws.Range("A1:D5") 'фиксированный диапазон или Set rngData = ws.UsedRange 'всё, что есть на листе или Set rngData = ws.Range("F5").CurrentRegion 'область, начиная от ячейки F5 или Set rngData = ws.Range("A2", ws.Range("A2").SpecialCells(xlCellTypeLastCell)) 'от А2 и до конца листа 'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1) Next ws End Sub
Запустить созданный макрос можно на вкладке Разработчик кнопкой Макросы (Developer — Macros) или с помощью сочетания клавиш Alt+F8. Макрос автоматически создаст новую книгу и скопирует туда нужные вам данные.
Плюсы такого подхода:
- Формулы с исходных листов сохраняются в сборке.
- Имена столбцов не играют роли.
- Макрос будет работать в любой версии Excel.
- Можно выбирать, что именно брать с каждого листа (конкретный фиксированный диапазон или весь лист).
Минусы этого способа:
- Последовательность столбцов на всех листах должна быть одинаковой, т.к. происходит, по сути, тупое копирование таблиц друг-под-друга.
- Защита от макросов должна быть отключена.
- Быстрого обновления, как это было с Power Query, здесь, к сожалению, не будет. При изменении исходных данных придётся запустить макрос повторно.
Способ 3. Готовый макрос из надстройки PLEX
Если лень возиться с макросами или Power Query, то можно пойти по пути наименьшего сопротивления — использовать готовый макрос (кнопка Собрать) из моей надстройки PLEX для Excel. Это, может, и не спортивно, но зато эффективно:
В общем, выбирайте любой удобный вам вариант и действуйте. Выбор — это всегда хорошо.
Ссылки по теме
- Что такое Power Query и с чем его едят.
- Как создавать свои макросы, использовать чужие и запускать их в своих файлах.
- Сборка данных из нескольких файлов с помощью Power Query.
Содержание
- Печать на одном листе
- Способ 1: смена ориентации
- Способ 2: сдвиг границ ячеек
- Способ 3: настройки печати
- Способ 4: окно параметров страницы
- Вопросы и ответы
При распечатке таблиц и других данных документа Excel нередко бывают случаи, когда данные выходят за границы листа. Особенно неприятно, если таблица не помещается горизонтально. Ведь в таком случае наименования строк окажутся на одной части распечатанного документа, а отдельные столбцы – на другой. Ещё более обидно, если совсем чуть-чуть не хватило места, чтобы полностью разместить таблицу на странице. Но выход из этого положения существует. Давайте разберемся, как распечатать данные на одном листе различными способами.
Печать на одном листе
Прежде, чем переходить к решению вопроса о том, как поместить данные на одном листе, следует определиться стоит ли вообще это делать. Нужно понимать, что большинство из тех способов, о которых пойдет речь ниже, предполагают уменьшение масштаба данных для того, чтобы уместить их на одном печатном элементе. Если за границы листа выходит относительно небольшая по размеру часть, то это вполне приемлемо. Но если не помещается значительное количество информации, то попытка разместить все данные на один лист может привести к тому, что они будут уменьшены настолько, что станут нечитабельны. Возможно, в этом случае лучшим выходом будет распечатать страницу на бумаге большего формата, склеить листы или найти другой выход из положения.
Так что пользователь должен определить сам, стоит ли пытаться вместить данные или нет. Мы же перейдем к описанию конкретных способов.
Способ 1: смена ориентации
Этот способ является одним из описанных здесь вариантов, в котором не придется прибегать к уменьшению масштаба данных. Но он подойдет только в том случае, если документ насчитывает небольшое количество строк, или для пользователя не таким важным является то, чтобы он уместился на одну страницу в длину, а достаточно будет того, что данные расположатся на площади листа в ширину.
- Прежде всего, нужно проверить, помещается ли таблица в границы печатного листа. Для этого переключаемся в режим «Разметка страницы». Для того, чтобы это сделать кликаем по пиктограмме с одноименным названием, которая расположена на строке состояния.
Также можно перейти во вкладку «Вид» и кликнуть по кнопке на ленте «Разметка страницы», которая расположена на ленте в блоке инструментов «Режимы просмотра книги».
- В любом из этих вариантов программа переходит в режим разметки страницы. При этом видны границы каждого печатного элемента. Как видим, в нашем случае таблица обрывается по горизонтали на два отдельных листа, что не может быть приемлемым.
- Для того, чтобы исправить ситуацию, переходим во вкладку «Разметка страницы». Жмем кнопку «Ориентация», которая расположена на ленте в блоке инструментов «Параметры страницы» и из появившегося небольшого списка выбираем пункт «Альбомная».
- После вышеуказанных действий таблица полностью поместилась на лист, но его ориентация поменялась с книжного на альбомный.
Есть также альтернативный вариант смены ориентации листа.
- Переходим во вкладку «Файл». Далее перемещаемся в раздел «Печать». В центральной части открывшегося окна расположен блок настроек печати. Кликаем по наименованию «Книжная ориентация». После этого открывается список с возможностью выбора другого варианта. Выбираем наименование «Альбомная ориентация».
- Как видим, в области предпросмотра, после вышеуказанных действий лист сменил ориентацию на альбомную и теперь все данные полностью входят в область печати одного элемента.
Кроме того, можно изменить ориентацию через окно параметров.
- Находясь во вкладке «Файл», в разделе «Печать» кликаем по надписи «Параметры страницы», которая расположена в самом низу настроек. В окно параметров можно попасть и при помощи других вариантов, но о них мы подробно поговорим при описании Способа 4.
- Запускается окно параметров. Переходим в его вкладку под названием «Страница». В блоке настроек «Ориентация» переставляем переключатель с позиции «Книжная» в позицию «Альбомная». Затем щелкаем по кнопке «OK» в нижней части окна.
Ориентация документа будет изменена, а, следовательно, расширена область печатного элемента.
Урок: Как сделать альбомный лист в Экселе
Способ 2: сдвиг границ ячеек
Иногда бывает, что пространство листа используется неэффективно. То есть, в некоторых столбцах имеется пустое место. Это увеличивает размер страницы в ширину, а значит, выводит её за пределы одного печатного листа. В этом случае есть смысл уменьшить размер ячеек.
- Устанавливаем курсор на панель координат на границе столбцов справа от того столбца, который вы считаете возможным уменьшить. При этом курсор должен превратиться в крестик со стрелками, направленными в две стороны. Зажимаем левую кнопку мыши и двигаем границу влево. Это движение продолжаем до тех пор, пока граница не достигнет данных той ячейки столбца, которая заполнена больше других.
- Подобную операцию проделываем и с остальными столбцами. После этого значительно увеличивается вероятность того, что все данные таблицы поместятся на одном печатном элементе, так как сама таблица становится гораздо компактнее.
При необходимости подобную операцию можно проделывать и со строками.
Недостаток указанного способа состоит в том, что он применим далеко не всегда, а только в тех случаях, когда пространство рабочего листа Excel было использовано неэффективно. Если же данные расположены максимально компактно, но все равно не помещаются на печатный элемент, то в таких случаях нужно использовать другие варианты, о которых мы поговорим ниже.
Способ 3: настройки печати
Сделать так, чтобы все данные при печати поместились на один элемент, можно также в настройках печати путем масштабирования. Но в этом случае нужно учесть, что сами данные будут уменьшены.
- Переходим во вкладку «Файл». Далее перемещаемся в раздел «Печать».
- Затем опять обращаем внимание на блок настроек печати в центральной части окна. В самом низу имеется поле настроек масштабирования. По умолчанию там должен быть установлен параметр «Текущий». Щелкаем по указанному полю. Открывается список. Выбираем в нем позицию «Вписать лист на одну страницу».
- После этого путем уменьшения масштаба все данные в текущем документе будут размещены на одном печатном элементе, что можно наблюдать в окне предпросмотра.
Также, если нет обязательной необходимости уменьшать все строки на одном листе можно в параметрах масштабирования выбрать пункт «Вписать столбцы на одну страницу». В этом случае данные таблицы горизонтально будут умещены на один печатный элемент, но вот в вертикальном направлении подобного ограничения не будет.
Способ 4: окно параметров страницы
Поместить данные на одном печатном элементе можно также при помощи окна, которое имеет название «Параметры страницы».
- Существует несколько способов запуска окна параметров страницы. Первый из них заключается в переходе во вкладку «Разметка страницы». Далее нужно кликнуть по пиктограмме в виде наклонной стрелки, которая размещена в нижнем правом углу блока инструментов «Параметры страницы».
Аналогичный эффект с переходом в нужное нам окно будет при клике по такой же самой пиктограмме в нижнем правом углу группы инструментов «Вписать» на ленте.
Также существует вариант попасть в данное окно через настройки печати. Переходим во вкладку «Файл». Далее кликаем по наименованию «Печать» в левом меню открывшегося окна. В блоке настроек, который расположен в центральной части окна жмем по надписи «Параметры страницы», размещенной в самом низу.
Имеется ещё один способ запуска окна параметров. Перемещаемся в раздел «Печать» вкладки «Файл». Далее кликаем по полю настроек масштабирования. По умолчанию там указан параметр «Текущий». В открывшемся списке выбираем пункт «Параметры настраиваемого масштабирования…».
- Какое из вышеописанных действий вы бы не выбрали, перед вами откроется окно «Параметры страницы». Перемещаемся во вкладку «Страница», если окно было открыто в другой вкладке. В блоке настроек «Масштаб» устанавливаем переключатель в позицию «Разместить не более чем на». В полях «Стр. в ширину» и «Стр. в высоту» должны быть установлены цифры «1». Если это не так, то следует установить данные числа в соответствующих полях. После этого, чтобы настройки были приняты программой к исполнению, жмем на кнопку «OK», которая размещена в нижней части окна.
- После выполнения данного действия все содержимое книги будет готово к печати на одном листе. Теперь переходим в раздел «Печать» вкладки «Файл» и жмем на большую кнопку под названием «Печать». После этого произойдет распечатка материала на принтере на одном листе бумаги.
Как и в предыдущем способе, в окне параметров можно произвести настройки, при которых данные будут помещаться на листе только в горизонтальном направлении, а в вертикальном ограничения не будет. Для этих целей требуется, переставив переключатель в позицию «Разместить не более чем на», в поле «Стр. в ширину» установить значение «1», а поле «Стр. в высоту» оставить пустым.
Урок: Как распечатать страницу в Экселе
Как видим, существует довольно большое количество способов вместить все данные для печати на одной странице. Причем, описанные варианты, по сути, весьма отличаются между собой. Уместность применения каждого из способов должна быть продиктована конкретными обстоятельствами. Например, если вы оставляете слишком много пустого места в столбцах, то наиболее оптимальным вариантом будет просто сдвинуть их границы. Также, если проблема состоит не в том, чтобы поместить таблицу на один печатный элемент в длину, а только в ширину, то, возможно, есть смысл подумать о смене ориентации на альбомную. Если же эти варианты не подходят, то можно применить способы, связанные с уменьшением масштабирования, но в этом случае размер данных тоже будет уменьшен.
Как собрать данные с нескольких листов или книг на один лист?
Одной из классических операций в Excel является копирование данных с одного листа на другой. Скопировал — вставил, никаких вопросов. Проблемы начинаются когда требуется собрать данные из разных источников, например с нескольких листов Excel на одном листе.
Существуют различные способы сбора данных в одном месте, в одной книге или на одном листе. Многократное копирование данных с последующей вставкой в нужном месте не рассматривается по понятным причинам, объединение данных при помощи сводных таблиц — это тоже отдельная тема. Остановимся на способе, который является наиболее эффективным в ситуации, когда требуется собрать большое количество данных с различных листов или книг на одном листе.
Сбор данных с нескольких листов Excel на итоговый лист
Для того чтобы слить данные с разных листов рабочей книги на один лист, потребуется надстройка для Excel по сбору данных. После ее установки Вам останется лишь запустить программу нажатием одной кнопки из ленты Excel и в диалоговом окне выбрать необходимые параметры для сбора информации.
Надстройка позволяет копировать заданные пользователем диапазоны данных на выбранных листах рабочей книги и вставлять скопированные данные на результирующий лист. При выборе диапазонов доступны четыре опции:
1) Используемые диапазоны — это диапазоны, начинающиеся с первой используемой ячейки и заканчивающиеся последней используемой ячейкой;
2) Предварительно выделенные диапазоны на каждом листе — диапазоны, выделенные пользователем самостоятельно, исходя из его потребностей по консолидации данных;
3) Одноименные диапазоны — диапазоны с одинаковым адресом на каждом листе, указанным на активном рабочем листе;
4) Выборочные диапазоны — диапазоны ячеек, начинающиеся с выбранной ячейки и заканчивающиеся концом листа (последней используемой ячейкой).
В диалоговом окне надстройки можно гибко настроить листы, с которых необходимо собрать данные. На выбор пользователя программа может обработать как все листы, так и только видимые, скрытые, непустые, с заданными именами, по маске имен, в интервале номеров, с заданным значением в определенном диапазоне.
Кроме того, в диалоговом окне надстройки можно указать способ расположения данных на итоговом листе, в зависимости от выбранной опции диапазоны будут располагаться один ниже другого (вертикальное расположение), либо один правее другого (горизонтальное расположение).
Для наглядности, чтобы на итоговом листе можно было видеть где заканчивается один диапазон и начинается другой, предусмотрена возможность отделять диапазоны друг от друга двойной сплошной линией, а также добавлять имена листов перед диапазонами.
Зачастую копируемые диапазоны содержат формулы, которые ссылаются на ячейки, адреса которых выходят за пределы копируемой области, либо наличие которых на итоговом листе нежелательно, для этих случаев добавлена опция «Заменять формулы результатами вычислений». Возможность заменять формулы результатами вычислений отсутствует, если копируемые диапазоны содержат объединенные ячейки.
Когда возникает необходимость собрать с разных листов строки, отвечающие определенным условиям, например, содержащие заданный текст, то предварительно, при помощи надстройки для выборочного выделения строк, можно выделить нужные строки на всех листах, после чего используя опцию «Предварительно выделенные диапазоны на каждом листе» собрать выделенные строки на итоговый лист.
В случае, если итоговый лист содержит ненужные пустые строки, можно провести их автоматическое удаление при помощи надстройки для выборочного удаления строк.
Как правило, после переноса данных на итоговый лист, сами исходные листы становятся ненужными, в этом случае их можно удалить полностью либо выборочно при помощи надстройки для удаления листов.
Видео по сбору данных со всех листов на итоговый лист
Сбор данных с нескольких книг Excel на один лист
Аналогичный сбор данных можно организовать и из разных рабочих книг. Сделать это можно в два этапа при помощи последовательного использования двух надстроек для Excel.
1) При помощи надстройки для объединения рабочих книг в один файл, собрать все листы в одной рабочей книге;
2) При помощи надстройки для сбора данных на итоговый лист, объединить данные с разных листов.
Как собрать данные с нескольких листов excel на один лист
Многие пользователи совершают одну и ту же ошибку: разносят исходную информацию на несколько листов. Таким образом файл становится неудобным для итогового анализа. Представим что такой файл достался Вам, например от уволенного сотрудника, место которого Вы заняли 🙂 В файле 12 листов итогов работы сотрудников по месяцам, содержащие абсолютно одинаковые таблицы, отличающиеся только значениями результативности, и один общий лист, на который необходимо собрать всю информацию за год, для того что бы определить кто из сотрудников работал наиболее результативно.
ПРОБЛЕМА: Как быстро собрать информацию на один лист из нескольких?
И заполнить такую форму:
КАК ЭТО РАБОТАЕТ:
Функция ДВССЫЛ() возвращает ссылку, заданную текстовой строкой. По простому говоря:=ДВССЫЛ( B1 &» !B2 «) — даёт нам ссылку аналогичную = Янв !B2 , потому как в ячейке В1 находится текст Янв , который конкатенируется (сцепляется) посредством оператора конкатенации амперсанда & с указанием конкретной ячейки листа Янв В2 .
КОММЕНТАРИИ: Так же можно использовать подобные конструкции и для извлечения данных из других книг.
МИНУСЫ: Функция ДВССЫЛ() не работает с закрытыми книгами.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Любая версия Excel
Консолидация данных с нескольких листов
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Для подведения итогов и результатов из отдельных листов, можно объединить данные из каждого листа в главном листе. Листы может быть в той же книге как главном листе или в других книгах. При объединении данных, чтобы упростить можно обновить и статистической обработки при необходимости собирать данные.
Например, если в каждом из региональных офисов есть свой лист расходов, с помощью консолидации можно свести эти данные на главном листе корпоративных расходов. Главный лист также может содержать итоговые и средние значения продаж, данные о складских запасах и информацию о самых популярных товарах в рамках всей компании.
Совет: Если вы часто консолидировать данные, он помогут создать новые листы на основе шаблона с единообразным макетом. Дополнительные сведения о шаблонах читайте в статье: Создать шаблон. Это также идеально время Настройка шаблона с помощью таблиц Excel.
Консолидация данных по положению или категории двумя способами.
Консолидация данных по расположению: данные в исходных областях том же порядке и использует одинаковых наклеек. Этот метод используется для консолидации данных из нескольких листов, например отделов бюджета листов, которые были созданы из одного шаблона.
Консолидация по категории: данные в исходных областях не расположены в одном и том же порядке, но имеют одинаковые метки. Используйте этот способ, чтобы консолидировать данные из нескольких листов с разными макетами, но одинаковыми метками данных.
Консолидация данных по категории похоже на создание сводной таблицы. Со сводной таблицей тем не менее, вы можете легко переупорядочение категории. Если вам нужна более гибкие Консолидация по категории, можно создать сводную таблицу .
Примечание: В этой статье были созданы с Excel 2016. Хотя представления могут отличаться при использовании другой версии Excel, шаги одинаковы.
Выполните указанные ниже действия, чтобы консолидация нескольких рабочих листов в главном листе.
Если вы еще не сделано, настройте данные на каждом листе составные, сделав следующее:
Убедитесь, что все диапазоны данных представлены в формате списка. Каждый столбец необходимо иметь метку (верхний колонтитул) в первой строке и содержать похожие данные. Должен быть отсутствуют пустые строки или столбцы в любом месте в списке.
Разместите каждый диапазон на отдельном листе, но не было введено никаких данных в основном листе где план для консолидации данных. Excel будет сделать это для вас.
Убедитесь, что всех диапазонов совпадают.
На основном листе щелкните левый верхний угол области, в которой требуется разместить консолидированные данные.
Примечание: Чтобы избежать перезаписи существующие данные в основном листе, убедитесь, оставьте достаточно ячеек справа и верхний угол консолидированные данные.
Нажмите кнопку данные>Консолидация (в группе Работа с данными ).
Выберите в раскрывающемся списке Функция функцию, которую вы хотите использовать для консолидации данных. По умолчанию используется значение СУММ.
Вот пример, в котором выбраны три диапазоны листа:
Далее в поле ссылка нажмите кнопку Свернуть, чтобы уменьшить масштаб панели и выбрать данные на листе.
Щелкните лист, содержащий данные, которые требуется консолидировать данные и нажмите кнопку Развернуть диалоговое окно справа, чтобы вернуться в диалоговое окно Консолидация .
Если лист, содержащий данные, которые необходимо объединить в другой книге, нажмите кнопку Обзор, чтобы найти необходимую книгу. После поиска и нажмите кнопку ОК, Excel в поле ссылка введите путь к файлу и добавление восклицательный знак, путь к. Чтобы выбрать другие данные можно нажмите Продолжить.
Вот пример, в котором выбраны три диапазоны листа выбранного:
Во всплывающем окне Консолидация нажмите кнопку Добавить. Повторите этот сценарий, чтобы добавить все нужные диапазоны консолидации.
Обновления автоматически и вручную: Если требуется автоматическое обновление консолидации таблицы при изменении исходных данных, просто установите флажок создавать связи с исходными данными. Если это поле остается неограниченный, возможность обновления консолидации вручную.
Связи невозможно создать, если исходная и конечная области находятся на одном листе.
Если необходимо изменить степень диапазона — или замените диапазон — выберите диапазон, во всплывающем окне Консолидация и обновлять его, выполнив указанные выше действия. Создаст новый в ссылке на диапазон, поэтому вам нужно будет сначала удалить предыдущий перед Консолидация еще раз. Просто выберите старой ссылки и нажмите клавишу Delete.
Нажмите кнопку ОК, а Excel создаст консолидации для вас. Кроме того можно применить форматирование. Бывает только необходимо отформатировать один раз, если не перезапустить консолидации.
Все названия, не совпадающие с названиями в других исходных областях, приведут к появлению дополнительных строк или столбцов в консолидированных данных.
Убедитесь, что все категории, которые не нужно консолидировать, должны иметь уникальные подписи, которые появляются в диапазоне только один источник.
Если данные для консолидации находятся в разных ячейках разных листов:
Введите формулу со ссылками на ячейки других листов (по одной на каждый лист). Например, чтобы консолидировать данные из листов «Продажи» (в ячейке B4), «Кадры» (в ячейке F5) и «Маркетинг» (в ячейке B9) в ячейке A2 основного листа, введите следующее:
Совет: Чтобы указать ссылку на ячейку — например, продажи! B4 — в формуле, не вводя, введите формулу до того места, куда требуется вставить ссылку, а затем щелкните лист, используйте клавишу tab и затем щелкните ячейку. Excel будет завершена адрес имя и ячейку листа для вас. Примечание: формулы в таких случаях может быть ошибкам, поскольку очень просто случайно выбираемых неправильной ячейки. Также может быть сложно ошибку сразу после ввода сложные формулы.
Если данные для консолидации находятся в одинаковых ячейках разных листов:
Ввод формулы с трехмерной ссылки, которая использует ссылку на диапазон имен листов. Например для консолидации данных в ячейках с A2 по продажам через маркетинга включительно, в ячейке E5 главном листе вы бы введите следующие данные:
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
Как собрать данные с нескольких листов или книг?
Очень часто бывает необходимо собрать данные с нескольких листов одной книги или даже с листов нескольких книг. Например, каждую неделю мы получаем некие отчеты от отделов, которые необходимо собрать в одну общую таблицу для построения сводной таблицы. Или это могут быть некие книги прайсов по товарам от разных поставщиком, который опять же надо сначала объединить, а потом уже анализировать. Вручную делать это довольно муторно. И то, муторно это только для первых 20-ти листов/файлов, потом становится просто тошно. Поэтому решил поделиться решением, которое поможет собрать данные со всех листов книги, со всех листов всех указанных книг или только с указанных листов:
‘————————————————————————————— ‘ Module : mConsolidated ‘ DateTime : 02.02.2010 17:06 ‘ Author : The_Prist(Щербаков Дмитрий) ‘ Purpose : http://www.excel-vba.ru/chto-umeet-excel/kak-sobrat-dannye-s-neskolkix-listov-ili-knig/ ‘ Процедура сбора данных с нескольки листов/книг ‘————————————————————————————— Option Explicit Sub Consolidated_Range_of_Books_and_Sheets() Dim iBeginRange As Range, rCopy As Range, lCalc As Long, lCol As Long Dim oAwb As String, sCopyAddress As String, sSheetName As String Dim lLastrow As Long, lLastRowMyBook As Long, li As Long, iLastColumn As Integer Dim wsSh As Worksheet, wsDataSheet As Worksheet, bPolyBooks As Boolean, avFiles Dim wbAct As Workbook Dim bPasteValues As Boolean On Error Resume Next ‘Выбираем диапазон выборки с книг Set iBeginRange = Application.InputBox(«Выберите диапазон сбора данных.» & vbCrLf & _ «1. При выборе только одной ячейки данные будут собраны со всех листов начиная с этой ячейки. » & _ vbCrLf & «2. При выделении нескольких ячеек данные будут собраны только с указанного диапазона всех листов.», Type:=8) ‘для указания диапазона без диалогового окна: ‘Set iBeginRange = Range(«A1:A10») ‘диапазон указывается нужный ‘Если диапазон не выбран — завершаем процедуру If iBeginRange Is Nothing Then Exit Sub ‘Указываем имя листа ‘Допустимо указывать в имени листа символы подставки ? и *. ‘Если указать только * то данные будут собираться со всех листов sSheetName = InputBox(«Введите имя листа, с которого собирать данные(если не указан, то данные собираются со всех листов)», «Параметр») ‘Если имя листа не указано — данные будут собраны со вех листов If sSheetName = «» Then sSheetName = «*» On Error GoTo 0 ‘Запрос — вставлять на результирующий лист все данные ‘или только значения ячеек (без формул и форматов) bPasteValues = (MsgBox(«Вставлять только значения?», vbQuestion + vbYesNo, «Excel-VBA») = vbYes) ‘Запрос сбора данных с книг(если Нет — то сбор идет с активной книги) If MsgBox(«Собрать данные с нескольких книг?», vbInformation + vbYesNo, «Excel-VBA») = vbYes Then avFiles = Application.GetOpenFilename(«Excel files(*.xls*),*.xls*», , «Выбор файлов», , True) If VarType(avFiles) = vbBoolean Then Exit Sub bPolyBooks = True lCol = 1 Else avFiles = Array(ThisWorkbook.FullName) End If ‘отключаем обновление экрана, автопересчет формул и отслеживание событий ‘для скорости выполнения кода и для избежания ошибок, если в книгах есть иные коды With Application lCalc = .Calculation .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual End With ‘создаем новый лист в книге для сбора Set wsDataSheet = ActiveWorkbook.Sheets.Add(After:=Sheets(Sheets.Count)) ‘если нужно сделать сбор данных на новый лист книги с кодом ‘Set wsDataSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) ‘цикл по книгам For li = LBound(avFiles) To UBound(avFiles) If bPolyBooks Then Set wbAct = Workbooks.Open(Filename:=avFiles(li)) Else Set wbAct = ThisWorkbook End If oAwb = wbAct.Name ‘цикл по листам For Each wsSh In wbAct.Worksheets If wsSh.Name Like sSheetName Then ‘Если имя листа совпадает с именем листа, в который собираем данные ‘и сбор идет только с активной книги — то переходим к следующему листу If wsSh.Name = wsDataSheet.Name And bPolyBooks = False Then GoTo NEXT_ With wsSh Select Case iBeginRange.Count Case 1 ‘собираем данные начиная с указанной ячейки и до конца данных lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row iLastColumn = .Cells.SpecialCells(xlLastCell).Column sCopyAddress = .Range(.Cells(iBeginRange.Row, iBeginRange.Column), .Cells(lLastrow, iLastColumn)).Address Case Else ‘собираем данные с фиксированного диапазона sCopyAddress = iBeginRange.Address End Select lLastRowMyBook = wsDataSheet.Cells.SpecialCells(xlLastCell).Row + 1 ‘определяем для копирования диапазон только заполненных данных на листе Set rCopy = Intersect(.Range(sCopyAddress).Parent.UsedRange, .Range(sCopyAddress)) ‘вставляем имя книги, с которой собраны данные If lCol Then wsDataSheet.Cells(lLastRowMyBook, 1).Resize(rCopy.Rows.Count).Value = oAwb ‘если вставляем только значения и форматы ячеек If bPasteValues Then rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteValues wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol).PasteSpecial xlPasteFormats Else ‘если вставляем все данные ячеек(значения, формулы, форматы и т.д.) rCopy.Copy wsDataSheet.Cells(lLastRowMyBook, 1).Offset(, lCol) End If End With End If NEXT_: Next wsSh If bPolyBooks Then wbAct.Close False Next li With Application .ScreenUpdating = True: .EnableEvents = True: .Calculation = lCalc End With End Sub
Приведенный выше код необходимо вставить в стандартный модуль(Что такое модуль? Какие бывают модули?). Выполнить его можно будет из этой книги нажатием клавиш Alt+F8. В появившемся окне выбрать Consolidated_Range_of_Books_and_Sheets и нажать Выполнить. Так же можно создать на листе кнопку и назначить ей данный макрос. Так же, если впервые работаете с макросами настоятельно рекомендую прочитать статью: Что такое макрос и где его искать?, а так же Почему не работает макрос?
После вызова макроса поочередно будут появляется запросы, в которых надо будет указать исходные параметры:
- Диапазон сбора данных — Если в окне выбора диапазона выбрать только одну ячейку, то данные будут собраны со всех листов книги/книг, начиная с этой ячейки и до последней ячейки листа.
Если выбрать несколько ячеек, данные будут собраны только с указанного диапазона всех листов книги/книг. Допускается указать несвязанный(рваный) диапазон(например, только три столбца: A:A , D:D , F:F ). Сделать это можно, выделив нужный диапазон с зажатой клавишей Ctrl - Имя листа — Необязателен для указания. Если не указан — данные будут собраны со всех листов. Указать можно как точное соответствие имени листа, так и с частичным соответствием. Например, если в книгах для сбора данных необходимо собрать данные только с листа «Январь», то следует так и указать — «Январь». Если требуется собрать данные только с листов, начинающихся с «Продажи»(«Продажи ЮГ», «Продажи НН», «Продажи Запад» и т.д.), то следует применить символ подстановки звездочку — «Продажи*». Если надо собрать с листов, содержащих в имени «продажи»(«Итоговые продажи ЮГ», «Продажи НН», «Сезонные продажи» и т.д.), то указываем «*продажи*». Если надо собрать только с листа «Сезонные продажи», но известно, что вместо пробела может быть нижнее подчеркивание или тире(«Сезонные продажи», «Сезонные_продажи», «Сезонные-продажи») или иной символ, то можно также применить звездочку — «Сезонные*продажи». Но если среди листов могут встречаться и такие как «Сезонные разовые продажи», «Сезонные корпоративные продажи» и т.п., но информацию с них собирать не надо, то можно применить вопросительный знак — «Сезонные?продажи». Вопросительный знак заменяет любой один символ, звездочка — любое количество любых символов.
- Далее появится запрос: Вставлять только значения? — если выбрать Да, то в результирующий лист с листов будут вставлены исключительно значения ячеек (без формул), но при этом сохранятся их форматы(формат чисел, цвет заливки, цвет шрифта, границы и т.п.). Может пригодится, если на листах для сбора записаны формулы, ссылающиеся на другие листы, книги, диапазоны. При обычном копировании может случиться так, что формула выдаст ошибку, т.к. в книге для вставки нет таких листов и диапазонов или данные расположены иначе. Если выбрать Нет, то все ячейки с листов на результирующий будут копироваться в точности как в исходных листах.
- И последний запрос: Собрать данные с нескольких книг? — если выбрать Да, то появится диалоговое окно выбора файлов. Надо указать все файлы, данные с которых необходимо собрать. Если выбрать Нет, то данные будут собираться с листов только активной книги.
Данные будут собраны на новый лист книги с макросом. Если данные собирались с нескольких книг, то в первый столбец будут занесены имена книг, с которых собраны данные.
Если после сбора данных обнаружили, что после каждого файла/листа много пустых строк, то следует найти в коде строку:
lLastrow = .Cells(1, 1).SpecialCells(xlLastCell).Row
Excel At Excel вып.3: Собираем данные с разных листов
Дано: 22 таблицы унифицированного формата с перечнем помещений от 22 дочерних предприятий.
Задача: сделать сводную таблицу с данными всех 22 таблиц
Итак, решение. Есть три варианта решения данной задачи. Первый — использовать встроенную (начиная с excel 2013) надстройку PowerPivot (об этом методе мы поговорим позднее). Второй — посредством сводной таблицы через несколько диапазонов консолидации. Не люблю этот метод, т.к. такая сводная таблица имеет существенно более ограниченный функционал по сравнению с простой сводной таблицей. Наконец, третий вариант — это создать общую таблицу с использованием функции INDIRECT (ДВССЫЛ). Этому методу и посвятим сегодня наш пост.
Что мы имеем? 22 одинаковых по формату таблицы на отдельных листах и с разным количеством строк в каждой. Соответственно, для построения общей таблицы нам надо решить следующие «проблемы»:
1) как заставить общую таблицу «переключаться» с одного листа данных на другой?;
2) как заставить ее делать это в нужный момент (когда закончились строки на одном листе)?
Начнем со второго вопроса, т.к. ответ на него мы уже знаем. Это циклы, о которых мы подробно говорили в выпуске 2 «Циклы в Excel без VBA». Для решения проблемы достаточно в наш файл добавить лист с перечнем всех обществ, соответствующими названиями листов и количеством подсчетом количества строк на каждом таком листе.
Обратите внимание на формулу в столбце Кол-во записей. Мы могли бы использовать просто COUNTA (СЧЁТА) со ссылкой на каждый лист. Но это потребует времени для «линковки» каждого листа. Плюс мы с вами готовим универсальные решения, которые будут работать в независимости от количества листов.
Именно для этого в функцию COUNTA (СЧЁТА) и внедряется эта чуднАя функция INDIRECT (ДВССЫЛ). Остановимся на ней подробнее.
Функция имеет, по сути, единственный параметр — ref_text (ссылка_на_текст). Что делает эта функция? Всего-навсего преобразует текст в ссылку на ячейку. То есть она преобразует текст, например, «А1» в ссылку и возвращает значение ячейки А1.
Соответственно, зная несложные правила работы с текстом в Excel, мы можем легко сделать текст внутри изменяемым, а значит можем сделать и изменяемыми ссылки, которые будет возвращать функция INDIRECT (ДВССЫЛ).
Разберем пример выше. Функция INDIRECT (ДВССЫЛ) имеет следующий вид:
Чтобы понять, что означает текст внутри нее, давайте вспомним, как выглядит в Excel ссылка на ячейку на другом листе. Вот так:
Соответственно, в нашем случае у нас неизменен столбец B:B, а вот название листа меняется. Для «автоматизации» формулы заменяем Название листа на ссылку на название листа с данными по соответствующему обществу (столбец Название листа). Получаем следующее:
где все, что подчеркнуто — текст, а выделено жирным — ссылки.
ВАЖНО! Обратите внимание на кавычки и конкатенацию («склеивание») при помощи амперсента. Не забудьте, что текст вносится в кавычках и соединяется со ссылками при помощи символа &.
Получается, что INDIRECT (ДВССЫЛ) получает название листа из ячеек в столбце А:А (Название листа), а диапазон у нас прописан фиксированно текстом (В:В). COUNTA (СЧЁТА) же просто считает количество строк в столбце В:В на соответствующем листа за вычетом заголовка.
Перейдем к формированию общей таблицы. Как вы уже наверное прикинули, у нас будет два вложенных цикла: один — количество обществ, второй — количество записей на листе данных по соответствующему обществу. Соответственно, нам потребуются два вспомогательных столбца (определим их в столбцы А и В). Ровно так же, как мы делали на примере в выпуске 2 «Циклы в Excel без VBA», пишем формулу первого цикла:
=IF(A2=»»;»»;IF(COUNTIF($A$2:A2;A2)=OFFSET(‘Список обществ’!$E$2;A2-1;0);IF(A2+1>COUNTA(‘Список обществ’!A:A)-1;»»;A2+1);A2))
Затем пишем формулу второго цикла:
Далее при помощи уже знакомой нам функции OFFSET (СМЕЩ) заполняем столбцы из таблицы на листе Список обществ.
Осталось подтянуть данные с 22 листов по обществам. Тут нам опять поможет OFFSET (СМЕЩ), но уже в паре с INDIRECT (ДВССЫЛ).
OFFSET (СМЕЩ) передает в формулу название листа, а конструкция B2+1 — номер строки в столбце Е на том листе.
ВАЖНО! Обратите внимание, что OFFSET (СМЕЩ) вкладывается внутрь INDIRECT (ДВССЫЛ), а не наоборот.
Иногда при распечатке документов Excel возникают ситуации, при которых не все элементы таблицы помещаются в границах распечатанной страницы. К примеру, если данные не умещаются по ширине, они будут распечатаны на другом листе, что значительно затруднит дальнейшее соотнесение данных, относящихся к одной строчке. Однако, столкнувшись с подобной проблемой, не стоит отчаиваться, поскольку существуют способы их решения. Давайте рассмотрим несколько методов, которые позволяют распечатывать таблицу таким образом, чтобы она могла уместиться на одном стандартном листе.
Содержание
- Распечатка таблицы на одном листе
- Изменение ориентации страницы
- Настройка границ столбцов и строк
- Параметры печати
- Установка параметров страницы
- Заключение
Распечатка таблицы на одном листе
Первым делом необходимо оценить целесообразность размещения табличных данных на одном листе. Также нужно учесть, что некоторые способы, описываемые в этой статье, подразумевают изменение масштаба табличных данных с целью их размещения на одном стандартном листе. Однако, в случае, когда таблица слишком большая и очевидно, что она никак не помещается в необходимых рамках, попытки ее уместить на одной странице приведут к уменьшению данных до такой степени, что они станут трудно читаемым или и вовсе не пригодным для чтения. Вероятно, в таких случаях наилучшим вариантом будет распечатка информации на страницах более крупного формата, либо же просто печать на стандартных листах и дальнейшая их склейка вместе.
В общем, решение касательно того, стоит ли предпринимать попытки размещения данных на одном листе или нет, зависит от каждого конкретного случая и размеров таблицы. А сейчас мы разберем различные методы решения данного вопроса.
Изменение ориентации страницы
Используя данный способ, пользователь может не изменять масштаб данных. По этой причине метод подходит только для таблиц, структура которых состоит из небольшого количества строк, либо если распределение информации по вертикали не столь важно, как при горизонтали, так как основной упор делается на нормальном отображение и распечатке именно данных по ширине страницы.
- Первое, что мы должно понять – это вмещаются ли все данные на одном стандартном листе или нет. Переходим в режим просмотра “Разметка страницы”. Попасть сюда можно двумя способами:
- После перехода в режим разметки документ отобразится в таком же виде, как и при распечатке. Он поможет понять, помещается ли таблица в рамках одного листа или нет. Что касается таблицы, рассматриваемой в нашем примере, она разделена на две отдельные страницы по горизонтали, что не совсем хорошо.
- В этой ситуации переходим во вкладку “Разметка страницы”. Здесь в разделе “Параметры страницы” нажимаем на кнопку “Ориентация” и в выпадающем списке нажимаем на вариант “Альбомная”.
- Выполнив описанные действия, вся таблица разместилась на одном листе, чего мы и добивались.
Помимо рассмотренного выше метода, существуют и другие способы изменения ориентации страниц:
- Первый реализуется через параметры печати:
- Также стоит отметить способ изменения ориентации с использованием окна параметров страницы:
Благодаря этим нехитрым действиям нам удалось решить проблему с размещением таблицы на одной странице.
Настройка границ столбцов и строк
В некоторых случаях таблица не умещается в пределах одного листа из-за нерационального использования места. Например, когда некоторые столбцы остаются пустыми или их ширина/длина намного больше, чем того требует содержимое в них. Это ведет к увеличению размеров таблицы по ширине и длине, а это в свою очередь приводит к тому, что документ не умещается на одном листе. В подобных случаях обычно прибегают к уменьшению размеров ячеек.
Для начала давайте посмотрим, как меняется ширина столбцов:
- Ставим курсор с правой стороны от уменьшаемого столбца на координатной панели. Он должен буть установлен прямо по границе соседних столбцов. Если все сделано правильно, то вид курсора сменится на крестик с разнонаправленными стрелками. Затем, зажав левую кнопку мыши, передвигаем границу влево. Сдвигать ее следует таким образом, чтобы не перекрыть данные наиболее заполненной ячейки.
- Данную процедуру выполняем и для всех оставшихся столбцов. Благодаря этим действиям таблица поместилась на одной странице, потому что нам удалось сделать ее более компактной.
Примечание: Вместо ручного сдвига границы столбца/строки можно, наведя курсор на нее, просто дважды щелкнуть левой кнопкой мыши, и Эксель автоматически подберет минимально возможную ширину исходя из самой заполненной ячейки.
При необходимости данный метод можно применять и к строкам.
Единственным его недостатком является то, что он не эффективен в случаях, когда таблица изначально заполнялось с учетом компактного расположения данных. При этом вполне может быть, что и оптимизированный вариант не поместится на одной странице. В таких случаях подойдут варианты, описанные ниже.
Параметры печати
Повлиять на расположение данных можно с помощью корректировки параметров печати. Сразу стоит отметить, что этот вариант предусматривает работу с размером самих данных.
- Заходим в меню Файл, затем кликаем по пункту “Печать”.
- Переводим взгляд на центральную область окна, в которой представлены настройки масштабирования. Кликаем по текущему варианту и выбираем опцию, которая нам нужна – “Вписать лист на одну страницу”.
- Данное действие преобразовало таблицу, вписав ее в рамки одного листа, в чем мы можем убедиться, взглянув на область предварительного просмотра документа справа.
Стоит отметить что, если пользователю не столь важен размер данных на листе, то с помощью параметра изменения масштаба можно разместить на одной странице любую таблицу, лишь бы данные в ней оставались читаемыми.
Здесь же помимо варианта “Вписать лист на одну страницу”, есть еще и другие опции:
- вписать все столбцы на одну страницы
- вписать все строки на одну страницу
- настройка параметров масштабирования
Установка параметров страницы
Есть также возможность уместить таблицу на 1-ой странице, установив необходимые параметры страницы.
- Добраться до нужных нам настроек можно несколькими способами:
- Любой из перечисленных вариантов предоставляет доступ к исчерпывающему набору параметров. В появившемся окне переходим во вкладку “Страница” (если мы находимся не там), затем в области, отвечающей за ее масштаб, ставим отметку напротив значения «разместить не более чем на:». Теперь остается указать количество страниц в ширину и в высоту. В нашем случае, пишем цифру 1 в обоих случаях и кликаем OK для сохранения параметров.
- После выполнения этих действий программа сможет корректно распечатать таблицу в соответствии с нашими пожеланиями. Теперь осталось только перейти в меню Файл, кликнуть по соответствующей кнопке, чтобы отправить документ на печать, предварительно убедившись в том, что выбранные параметры позволили вписать таблицу на один лист.
Примечание: Если требуется вписать в границы одного листа только данные по ширине при отсутствии ограничений касающихся высоты, в параметрах страницы также ставим отметку напротив значения «разместить не более чем на:». Но теперь в первом поле (отвечающем за ширину) указываем цифру 1, а во втором (отвечающем за высоту) оставляем пустое значение.
Заключение
Существует немало способов, которые позволяют настроить таблицу Эксель таким образом, чтобы она размещалась на одном листе при распечатке. Стоит заметить, что перечисленные выше методы в достаточной мере отличаются друг от друга, хоть и преследуют одну и ту же цель. В зависимости от конкретных обстоятельств и нужно подбирать вариант (изменение ориентации страницы, настройка границ столбцов и строк и т.д.), который позволит наиболее эффективно справиться с поставленной задачей. И самое главное, не забывайте обращать внимание на читаемость таблицы в случае масштабирования данных.
Уменьшив лист для печати, можно поместить все данные на одну страницу. Вы можете сжать документ Excel, чтобы данные поместились на указанное число страниц, с помощью команды Параметры страницы на вкладке Разметка страницы.
Уменьшение листа до одной страницы
-
Откройте вкладку Разметка страницы. Нажмите небольшое кнопку запуска диалогового окна в правом нижнем поле. Откроется диалоговое окно Параметры страницы.
-
Выберите вкладку Страница в диалоговом окне Параметры страницы.
-
Установите переключатель разместить не более чем на в разделе Масштаб.
-
Чтобы напечатать документ на одной странице, введите 1 в поля ширины и высоты.
Примечание: Excel уменьшит данные в соответствии с указанным числом страниц. Вы также можете настроить значения для печати на нескольких страницах.
-
Нажмите кнопку ОК внизу диалогового окна Параметры страницы.
См. также
Чтобы разделить лист на отдельные страницы для печати, можно также использовать разрывы страниц. Хотя Excel добавляет разрывы страниц автоматически (они обозначены пунктирной линией), вы также можете вставлять, перемещать и удалять разрывы страниц на листе.
Если вам нужно напечатать только часть, вы можете установить или очистить область печати на этом компьютере.
Эта функция недоступна в Excel в Интернете.
Если у вас есть настольное приложение Excel, вы можете нажать кнопку «Открыть в Excel», чтобы открыть книгу и масштабировать лист так, чтобы данные умещались на одной странице.
Одной из классических операций в Excel является копирование данных с одного листа на другой. Скопировал — вставил, никаких вопросов. Проблемы начинаются когда требуется собрать данные из разных источников, например с нескольких листов Excel на одном листе.
Существуют различные способы сбора данных в одном месте, в одной книге или на одном листе. Многократное копирование данных с последующей вставкой в нужном месте не рассматривается по понятным причинам, объединение данных при помощи сводных таблиц — это тоже отдельная тема. Остановимся на способе, который является наиболее эффективным в ситуации, когда требуется собрать большое количество данных с различных листов или книг на одном листе.
Сбор данных с нескольких листов Excel на итоговый лист
Для того чтобы слить данные с разных листов рабочей книги на один лист, потребуется надстройка для Excel по сбору данных. После ее установки Вам останется лишь запустить программу нажатием одной кнопки из ленты Excel и в диалоговом окне выбрать необходимые параметры для сбора информации.
Надстройка позволяет копировать заданные пользователем диапазоны данных на выбранных листах рабочей книги и вставлять скопированные данные на результирующий лист. При выборе диапазонов доступны четыре опции:
1) Используемые диапазоны — это диапазоны, начинающиеся с первой используемой ячейки и заканчивающиеся последней используемой ячейкой;
2) Предварительно выделенные диапазоны на каждом листе — диапазоны, выделенные пользователем самостоятельно, исходя из его потребностей по консолидации данных;
3) Одноименные диапазоны — диапазоны с одинаковым адресом на каждом листе, указанным на активном рабочем листе;
4) Выборочные диапазоны — диапазоны ячеек, начинающиеся с выбранной ячейки и заканчивающиеся концом листа (последней используемой ячейкой).
В диалоговом окне надстройки можно гибко настроить листы, с которых необходимо собрать данные. На выбор пользователя программа может обработать как все листы, так и только видимые, скрытые, непустые, с заданными именами, по маске имен, в интервале номеров, с заданным значением в определенном диапазоне.
Кроме того, в диалоговом окне надстройки можно указать способ расположения данных на итоговом листе, в зависимости от выбранной опции диапазоны будут располагаться один ниже другого (вертикальное расположение), либо один правее другого (горизонтальное расположение).
Для наглядности, чтобы на итоговом листе можно было видеть где заканчивается один диапазон и начинается другой, предусмотрена возможность отделять диапазоны друг от друга двойной сплошной линией, а также добавлять имена листов перед диапазонами.
Зачастую копируемые диапазоны содержат формулы, которые ссылаются на ячейки, адреса которых выходят за пределы копируемой области, либо наличие которых на итоговом листе нежелательно, для этих случаев добавлена опция «Заменять формулы результатами вычислений». Возможность заменять формулы результатами вычислений отсутствует, если копируемые диапазоны содержат объединенные ячейки.
макрос (надстройка) для сбора данных со всех листов Excel на итоговый
Когда возникает необходимость собрать с разных листов строки, отвечающие определенным условиям, например, содержащие заданный текст, то предварительно, при помощи надстройки для выборочного выделения строк, можно выделить нужные строки на всех листах, после чего используя опцию «Предварительно выделенные диапазоны на каждом листе» собрать выделенные строки на итоговый лист.
В случае, если итоговый лист содержит ненужные пустые строки, можно провести их автоматическое удаление при помощи надстройки для выборочного удаления строк.
Как правило, после переноса данных на итоговый лист, сами исходные листы становятся ненужными, в этом случае их можно удалить полностью либо выборочно при помощи надстройки для удаления листов.
Видео по сбору данных со всех листов на итоговый лист
Сбор данных с нескольких книг Excel на один лист
Аналогичный сбор данных можно организовать и из разных рабочих книг. Сделать это можно в два этапа при помощи последовательного использования двух надстроек для Excel.
1) При помощи надстройки для объединения рабочих книг в один файл, собрать все листы в одной рабочей книге;
2) При помощи надстройки для сбора данных на итоговый лист, объединить данные с разных листов.
А знаете ли Вы, что существует возможность выборочно собрать данные с определенных листов различных рабочих книг?
Другие материалы по теме:
Консолидация данных – опция в Excel, которая позволяет объединять данные из разных таблиц в одну, а также объединять листы, расположенные в одном или разных файлах, в один. Чем же так полезна консолидация для интернет-маркетолога?
Разберем два наглядных примера.
Пример №1
У нас есть статистика по ключевым словам из контекстной рекламы с привязкой к основным показателям – кликам, расходам, транзакциям и доходу.
Специальный отчет в Google Analytics
Выгрузив данные в Excel, мы увидим, что в таблице есть строки, которые «по сути» являются дублями.
«Дубли» ключевых слов в статистике
Это связано с тем, что статистика выгружена из двух рекламных систем (Яндекс.Директ и Google Ads), и в Google Рекламе для ключевых слов используется модификатор широкого соответствия (знак «+»).
То есть, вместо двух строчек доставка цветов москва и +доставка +цветов +москва мы должны получить одну с объединенными данными. Ведь это один ключ и нам нужно оценить его эффективность.
Аналитика не может автоматически просуммировать такие ключи. Не может и Excel, если только не выбирать поочередно строки и смотреть итоговые значения на панели, а потом в соседней таблице вручную сводить их.
Суммирование данных вручную
Это очень долго, особенно когда у вас много данных. С этой задачей легко справляется Консолидация данных. За 1 минуту и с помощью нескольких щелчков мыши можно автоматически сделать то, что мы привыкли делать вручную.
Но перед этим нужно не забыть воспользоваться функцией Заменить, убрав все + из таблицы.
Удаляем + в ключевых словах перед консолидацией
Последовательность действий:
— переходим на соседний лист (так удобнее);
— выделяем ячейку, в которую хотим вставить данные;
— переходим в Данные — Консолидация
Данные — Консолидация
В открывшемся окне нас интересуют следующие настройки:
- Функция – Сумма (поскольку хотим суммировать данные);
- Ссылка – выбираем весь диапазон данных на соседнем листе;
- Использовать в качестве имен – ставим галочки для подписи верхней строки и значения левого столбца.
Настройки консолидации
Нажимаем ОК. Если все сделали верно, то на текущем листе получите результат в виде объединенных (консолидированных) данных:
Итоговая таблица после консолидации
Таблица наша также уменьшилась. До консолидации было 252 строки, после объединения данных их стало 212:
ДО и ПОСЛЕ консолидации
Видео консолидации примера №1:
Консолидация данных в Excel
Пример №2
Вы каждый месяц для своего клиента готовите отчет по рекламе. Наступает момент, когда нужно свести данные за предыдущие периоды. Например, ежемесячные, чтобы получить годовой отчет. Или 6 месяцев, чтобы построить суммарный отчет за полгода. В общем, любой период, за который вам нужна консолидированная статистика.
Да, можно просто выгрузить данные из рекламных кабинетов Яндекс.Директ и Google Ads за общий период. Но что делать, когда данные по показам, кликам, расходам и конверсиям привязаны к бизнес-показателям, которых нет в интерфейсах, но которые завязаны на контекстной рекламе? А если в каждый из этих месяцев работали разные рекламные кампании (в один месяц – 10, в другой – 5 и т.д.)? Опять ручной процесс сведения данных.
И для таких случаев пригодится Консолидация в Excel. Давайте сведем данные с помощью данной настройки на примере выгрузки интернет-магазина за 3 месяца в один отчет. Статистика по месяцам расположена на разных вкладках (сентябрь — ноябрь — декабрь).
Статистика по 3 месяцам на разных вкладках файла
Мы хотим свести данные в одну таблицу. Воспользуемся консолидацией.
В открывшемся окне нас интересуют следующие настройки:
- Функция – Сумма (поскольку хотим суммировать данные);
- Ссылка – выбираем весь диапазон данных на листах поочередно (с помощью кнопки Добавить);
- Использовать в качестве имен – ставим галочки для подписи верхней строки и значения левого столбца.
Настройки консолидации
Галочка Создавать связи с исходными данными позволит производить пересчет консолидированного отчета автоматически при изменении данных в исходных файлах (в нашем примере – это листы сентябрь, октябрь, ноябрь). Нажимаем ОК.
Если все сделали правильно, то на текущем листе получите результат в виде объединенных (консолидированных) данных с трех таблиц в одной:
Объединенная таблица
Слева появятся новые значки:
Связи с исходными данными
- 1 – свернуть все связи с исходными данными;
- 2 – развернуть все связи с исходными данными.
При нажатии на + раскроется соответствующая строка, в которой будут отображены данные по каждому из исходных листов.
Видео консолидации примера №2:
Консолидация данных в Excel
Таким образом, консолидация данных в Excel позволяет всего в несколько кликов объединить данных из разных файлов, листов и таблиц в единый объект. Еще один шаг на пути к автоматизации и упрощению работы с отчетностью!
Понравился эксперимент с видео? Поставь 5.0 статье ->