Постановка задачи
Давайте разберем красивое решение для одной из весьма стандартных ситуаций, с которой рано или поздно сталкивается большинство пользователей Excel: нужно быстро и автоматически собрать данные из большого количества файлов в одну итоговую таблицу.
Предположим, что у нас есть вот такая папка, в которой содержится несколько файлов с данными из филиалов-городов:
Количество файлов роли не играет и может меняться в будущем. В каждом файле есть лист с именем Продажи, где расположена таблица с данными:
Количество строк (заказов) в таблицах, само-собой, разное, но набор столбцов везде стандартный.
Задача: собрать данные из всех файлов в одну книгу с последующим автоматическим обновлением при добавлении-удалении файлов-городов или строк в таблицах. По итоговой консолидированной таблице затем можно будет строить любые отчеты, сводные таблицы, фильтровать-сортировать данные и т.д. Главное — суметь собрать.
Подбираем оружие
Для решения нам потребуется последняя версия Excel 2016 (в нее нужный функционал уже встроен по умолчанию) или предыдущие версии Excel 2010-2013 с установленной бесплатной надстройкой Power Query от Microsoft (скачать ее можно здесь). Power Query — это супергибкий и супермощный инструмент для загрузки в Excel данных из внешнего мира с последующей их зачисткой и обработкой. Power Query поддерживает практически все существующие источники данных — от текстовых файлов до SQL и даже Facebook
Если у вас нет Excel 2013 или 2016, то дальше можно не читать (шучу). В более древних версиях Excel подобную задачу можно реализовать только программированием макроса на Visual Basic (что весьма непросто для начинающих) или монотонным ручным копированием (что долго и порождает ошибки).
Шаг 1. Импортируем один файл как образец
Для начала давайте импортируем данные из одной книги в качестве примера, чтобы Excel «подхватил идею». Для этого создайте новую пустую книгу и…
- если у вас Excel 2016, то откройте вкладку Данные и выберите Создать запрос — Из файла — Из книги (Data — New Query- From file — From Excel)
- если у вас Excel 2010-2013 с установленной надстройкой Power Query, то откройте вкладку Power Query и выберите на ней Из файла — Из книги (From file — From Excel)
Затем в открывшемся окне переходим в нашу папку с отчетами и выбираем любой из файлов-городов (не играет роли какой именно, т.к. они все типовые). Через пару секунд должно появиться окно Навигатор, где нужно в левой части выбрать требуемый нам лист (Продажи), а в правой отобразится его содержимое:
Если нажать в правом нижнем углу этого окна кнопку Загрузить (Load), то таблица будет сразу импортирована на лист в исходном виде. Для одиночного файла — это хорошо, но нам нужно загрузить много таких файлов, поэтому мы пойдем немного другим путем и жмем кнопку Правка (Edit). После этого должен в отдельном окне отобразиться редактор запросов Power Query с нашими данными из книги:
Это очень мощный инструмент, позволяющий «допилить» таблицу под нужный нам вид. Даже поверхностное описание всех его функций заняло бы под сотню страниц, но, если совсем кратко, то с помощью этого окна можно:
- отфильтровывать ненужные данные, пустые строки, строки с ошибками
- сортировать данные по одному или нескольким столбцам
- избавляться от повторов
- делить слипшийся текст по столбцам (по разделителям, количеству символов и т.д.)
- приводить текст в порядок (удалять лишние пробелы, исправлять регистр и т.д.)
- всячески преобразовывать типы данных (превращать числа как текст в нормальные числа и наоборот)
- транспонировать (поворачивать) таблицы и разворачивать двумерные кросс-таблицы в плоские
- добавлять к таблице дополнительные столбцы и использовать в них формулы и функции на встроенном в Power Query языке М.
- …
Для примера, давайте добавим к нашей таблице столбец с текстовым названием месяца, чтобы потом проще было строить отчеты сводных таблиц. Для этого щелкните правой кнопкой мыши по заголовку столбца Дата и выберите команду Дублировать столбец (Duplicate Column), а затем щелкните правой кнопкой мыши по заголовку появившегося столбца-дубликата и выберите команды Преобразование — Месяц — Название месяца:
Должен образоваться новый столбец с текстовыми названиями месяца для каждой строки. Дважды щелкнув по заголовку столбца, его можно переименовать из Копия Дата в более удобное Месяц, например.
Если в каких-то столбцах программа не совсем корректно распознала тип данных, то ей можно помочь, щелкнув по значку формата в левой части каждого столбца:
Исключить строки с ошибками или пустые строки, а также ненужных менеджеров или заказчиков можно с помощью простого фильтра:
Причем все выполненные преобразования фиксируются в правой панели, где их всегда можно откатить (крестик) или изменить их параметры (шестеренка):
Легко и изящно, не правда ли?
Шаг 2. Преобразуем наш запрос в функцию
Чтобы впоследствии повторить все сделанные преобразования данных для каждой импортируемой книги, нужно преобразовать наш созданный запрос в функцию, которая затем будет применяться, по очереди, ко всем нашим файлам. Сделать это, на самом деле, очень просто.
В редакторе запросов перейдите на вкладку Просмотр и нажмите кнопку Расширенный редактор (View — Advanced Editor). Должно открыться окно, где все наши предыдущие действия будут записаны в виде кода на языке М. Обратите внимание, что в коде жестко прописан путь к файлу, который мы импортировали для примера:
Теперь аккуратно вносим пару правок:
Смысл их прост: первая строка (filepath)=> превращает нашу процедуру в функцию с аргументом filepath, а ниже мы меняем фиксированный путь на значение этой переменной.
Все. Жмем на Готово и должны увидеть вот это:
Не пугайтесь, что пропали данные — на самом деле все ОК, все так и должно выглядеть Мы успешно создали нашу пользовательскую функцию, где запомнился весь алгоритм импорта и обработки данных без привязки к конкретному файлу. Осталось дать ей более понятное имя (например getData) на панели справа в поле Имя и можно жать Главная — Закрыть и загрузить (Home — Close and Load). Обратите внимание, что в коде жестко прописан путь к файлу, который мы импортировали для примера.. Вы вернетесь в основное окно Microsoft Excel, но справа должна появиться панель с созданным подключением к нашей функции:
Шаг 3. Собираем все файлы
Все самое сложное — позади, осталась приятная и легкая часть. Идем на вкладку Данные — Создать запрос — Из файла — Из папки (Data — New Query — From file — From folder) или, если у вас Excel 2010-2013, аналогично на вкладку Power Query. В появившемся окне указываем папку, где лежат все наши исходные файлы-города и жмем ОК. Следующим шагом должно открыться окно, где будут перечислены все найденные в этой папке (и ее подпапках) файлы Excel и детализация по каждому из них:
Жмем Изменить (Edit) и опять попадаем в знакомое окно редактора запросов.
Теперь нужно добавить к нашей таблице еще один столбец с нашей созданной функцией, которая «вытянет» данные из каждого файла. Для этого идем на вкладку Добавить столбец — Пользовательский столбец (Add Column — Add Custom Column) и в появившемся окне вводим нашу функцию getData, указав для ее в качестве аргумента полный путь к каждому файлу:
После нажатия на ОК созданный столбец должен добавиться к нашей таблице справа.
Теперь удалим все ненужные столбцы (как в Excel, с помощью правой кнопки мыши — Удалить), оставив только добавленный столбец и столбец с именем файла, т.к. это имя (а точнее — город) будет полезно иметь в итоговых данных для каждой строки.
А теперь «вау-момент» — щелкнем мышью по значку со своенным стрелками в правом верхнем углу добавленного столбца с нашей функцией:
… снимаем флажок Использовать исходное имя столбца как префикс (Use original column name as prefix)и жмем ОК. И наша функция подгрузит и обработает данные из каждого файла, следуя записанному алгоритму и собрав все в общую таблицу:
Для полной красоты можно еще убрать расширения .xlsx из первого столбца с именами файлов — стандартной заменой на «ничего» (правой кнопкой мыши по заголовку столбца — Заменить) и переименовать этот столбец в Город. А также подправить формат данных в столбце с датой.
Все! Жмем на Главной — Закрыть и загрузить (Home — Close & Load). Все собранные запросом данные по всем городам будут выгружены на текущий лист Excel в формате «умной таблицы»:
Созданное подключение и нашу функцию сборки не нужно никак отдельно сохранять — они сохраняются вместе с текущим файлом обычным образом.
В будущем, при любых изменениях в папке (добавлении-удалении городов) или в файлах (изменение количества строк) достаточно будет щелкнуть правой кнопкой мыши прямо по таблице или по запросу в правой панели и выбрать команду Обновить (Refresh) — Power Query «пересоберет» все данные заново за несколько секунд.
P.S.
Поправка. После январских обновлений 2017 года Power Query научился собирать Excel’евские книги сам, т.е. не нужно больше делать отдельную функцию — это происходит автоматически. Таким образом второй шаг из этой статьи уже не нужен и весь процесс становится заметно проще:
- Выбрать Создать запрос — Из файла — Из папки — Выбрать папку — ОК
- После появления списка файлов нажать Изменить
- В окне редактора запросов развернуть двойной стрелкой столбец Binary и выбрать имя листа, который нужно взять из каждого файла
И все! Песня!
Ссылки по теме
- Редизайн кросс-таблицы в плоскую, подходящую для построения сводных таблиц
- Построение анимированной пузырьковой диаграммы в Power View
- Макрос для сборки листов из разных файлов Excel в один
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
Используйте Power Query, чтобы объединить несколько файлов с одной схемой, храняной в одной папке, в одну таблицу. Например, каждый месяц необходимо объединить бюджетные книги из нескольких отделов, где столбцы одинаковы, но количество строк и значений в каждой книге различается. После ее настроив, вы можете применить дополнительные преобразования, как к любому импортируемму источнику данных, а затем обновить данные, чтобы увидеть результаты за каждый месяц.
Примечание. В этой теме показано, как объединять файлы из папки. Вы также можете объединять файлы, хранимые в SharePoint, azure BLOB-служба хранилища и Azure Data Lake служба хранилища. Процесс аналогичный.
Не изумять:
-
Убедитесь, что все файлы, которые вы хотите объединить, содержатся в выделенной папке без лишних файлов. В противном случае все файлы в папке и все вложенные папки, которые вы выбрали, будут включены в данные для совместной обработки.
-
У каждого файла должна быть та же схема, что и для согласованных столбцов, типов данных и количества столбцов. Столбцы не должны быть в том же порядке, что и имена столбцов.
-
По возможности старайтесь не использовать несвязанные объекты данных для источников данных, которые могут иметь несколько объектов данных, например JSON-файл, Excel книгу или базу данных Access.
Каждый из этих файлов имеет простой шаблон, в каждом из которых есть только одна таблица данных.
-
Выберите Данные > Получить данные > из файла > из папки. Появится диалоговое окно Обзор.
-
Найдите папку с файлами, которые вы хотите объединить.
-
Список файлов в папке появится в диалоговом <путь к> папке. Убедитесь, что в списке указаны все нужные файлы.
-
Выберите одну из команд в нижней части диалогового окна, например Объединить> Объединить & Загрузить. В разделе Обо всех этих командах обсуждаются дополнительные команды.
-
Если выбрать команду Объединить, появится диалоговое окно Объединение файлов. Чтобы изменить параметры файла, выберите каждый файл в поле Образец файла, задав нужные параметры Источник файла,Делитер и Обнаружение типов данных. Кроме того, в нижней части диалогового окна можно выбрать или отобрать диалоговое окно Пропускать файлы с ошибками.
-
Нажмите кнопку ОК.
Результат
Power Query автоматически создает запросы для консолидации данных из каждого файла на каждом из них. Шаги запроса и созданные столбцы зависят от того, какую команду вы выбрали. Дополнительные сведения см. в разделе Сведения обо всех этих запросах.
-
Выберите Данные > Получить данные > из файла > из папки. Появится диалоговое окно Обзор.
-
Найдите папку с файлами, которые вы хотите объединить.
-
Список файлов в папке появится в диалоговом <путь к> папке. Убедитесь, что в списке указаны все нужные файлы.
-
Выберите одну из команд в нижней части диалогового окна, например Объединить> Объединить & Transform. В разделе Обо всех этих командах обсуждаются дополнительные команды.
Появится редактор Power Query.
-
Столбец Значение является структурированным столбцом списка. Выберите значок Развернуть
, а затем выберите Развернуть до новых строк.
-
Столбец Value (Значение) теперь является структурированным столбцом Record (Запись). Выберите значок
развернуть. Появится диалоговое окно с drop-down.
-
Не избирать все столбцы. Возможно, вам нужно будет очистить поле Использовать имя исходного столбца в качестве префикса. Нажмите кнопку ОК.
-
Вы можете выбрать все столбцы, содержащие значения данных. На лентевыберите Главная , стрелку рядом с клавишей Remove Columns, а затем выберите Удалить другие столбцы.
-
Выберите Главная> закрыть & загрузить.
Результат
Power Query автоматически создает запросы для консолидации данных из каждого файла на каждом из них. Шаги запроса и созданные столбцы зависят от того, какую команду вы выбрали. Дополнительные сведения см. в разделе Сведения обо всех этих запросах.
Каждый из этих источников данных может иметь несколько объектов для импорта. Книга Excel может иметь несколько книг, Excel таблиц или именовых диапазонов. База данных Access может иметь несколько таблиц и запросов.
-
Выберите Данные > Получить данные > из файла > из папки. Появится диалоговое окно Обзор.
-
Найдите папку с файлами, которые вы хотите объединить.
-
Список файлов в папке появится в диалоговом <путь к> папке. Убедитесь, что в списке указаны все нужные файлы.
-
Выберите одну из команд в нижней части диалогового окна, например Объединить> Объединить & Загрузить. В разделе Обо всех этих командах обсуждаются дополнительные команды.
-
В диалоговом окне Объединение файлов:
-
В поле Образец файла выберите файл, который будет использоваться в качестве примера данных для создания запросов. Нельзя выбрать объект или выбрать только один объект. Однако выбрать несколько из них нельзя.
-
Если объектов много, используйте поле Поиск, чтобы найти объект, или параметры отображения, а также кнопку Обновить для фильтрации списка.
-
В нижней части диалогового окна можно выбрать или отобирать для файлов с ошибками поле Пропускать файлы с ошибками.
-
-
Нажмите кнопку ОК.
Результат
Power Query автоматически создает запрос для консолидации данных из каждого файла на каждом из них. Шаги запроса и созданные столбцы зависят от того, какую команду вы выбрали. Дополнительные сведения см. в разделе Сведения обо всех этих запросах.
Для большей гибкости вы можете явным образом объединить файлы в редакторе Power Query с помощью команды Объединить файлы. Предположим, что в исходных папках есть как типы файлов, так и вложенные папки, и вы хотите подцелить определенные файлы с тем же типом файлов и схемой, но не с другими. Это может повысить производительность и упростить преобразования.
-
Выберите data > Get Data > Data > From File > From Folder. Появится диалоговое окно Обзор.
-
Найдите папку с файлами, которые вы хотите объединить, и выберите открыть.
-
Список всех файлов в папке и вложенных папках появится в диалоговом<путь>папки. Убедитесь, что в списке указаны все нужные файлы.
-
Внизу выберите преобразовать данные. Откроется редактор Power Query со всеми файлами в папке и во вложенных папках.
-
Чтобы выбрать нужные файлы, отфильтруем столбцы, например Расширение или Путь к папке.
-
Чтобы объединить файлы в одну таблицу, выберите столбец Содержимое, содержащий каждый двоичный (обычно первый столбец), а затем выберите Главная > Объединить файлы. Появится диалоговое окно Объединение файлов.
-
Power Query анализирует пример файла (по умолчанию первый файл в списке), чтобы использовать правильный соединительщик и определить совпадающие столбцы.
Чтобы использовать другой файл для примера, выберите его в списке Образец файла.
-
При желании внизу выберите пропустить файлы с ошибкой s,чтобы исключить эти файлы из результата.
-
Нажмите кнопку ОК.
Результат
Power Query автоматически создает запросы для консолидации данных из каждого файла на каждом из них. Шаги запроса и созданные столбцы зависят от того, какую команду вы выбрали. Дополнительные сведения см. в разделе Сведения обо всех этих запросах.
Существует несколько команд, которые можно выбрать, и каждая из них имеет разные цели.
-
Объединение и преобразование данных Чтобы объединить все файлы с запросом, а затем запустить редактор Power Query, выберите объединить> объединить и преобразовать данные.
-
Объединение и загрузка Чтобы отобразить диалоговое окно Образец файла, создайте запрос, а затем загрузите на таблицу, выберите объединить> Объединить и загрузить.
-
Объединение и загрузка в Чтобы отобразить диалоговое окно Образец файла, создайте запрос, а затем в диалоговом окне Импорт выберите объединить> Объединить и загрузить в.
-
Нагрузки Чтобы создать запрос с одним шагом, а затем загрузить на таблицу, выберите загрузить > загрузить.
-
Загрузить в Чтобы создать запрос одним шагом и отобразить диалоговое окно Импорт, выберите загрузить > Загрузить в.
-
Преобразование данныхЧтобы создать запрос с одним шагом и запустить редактор Power Query, выберите Преобразовать данные.
Тем не менее при объединения файлов в области Запросы в группе «Запросы-справки» создается несколько вспомогательных запросов.
-
Power Query создает запрос «Образец файла» на основе примера запроса.
-
Запрос функции Transform File (Файл преобразования) использует запрос Parameter1 для указания каждого файла (двоичного) в качестве входного в запрос «Образец файла». Этот запрос также создает столбец Содержимое, содержащий содержимое файла, и автоматически расширяет его, чтобы добавить данные столбца в результаты. Запросы «Преобразовать файл» и «Образец файла» связаны, поэтому изменения в запросе «Образец файла» отражаются в запросе «Преобразовать файл».
-
Запрос, содержащий окончательные результаты, находится в группе «Другие запросы». По умолчанию он называется папкой, из которого вы импортировали файлы.
Для дальнейшего изучения щелкните каждый запрос правой кнопкой мыши и выберите Изменить, чтобы изучить каждый шаг запроса и увидеть, как работают запросы на этапе.
Чтобы начать процесс объединения нескольких файлов, сначала поместите их все в одну папку.
Примечание: Поддерживаются файлы Excel и Access, текстовые файлы, а также файлы в форматах CSV, JSON и XML.
-
На вкладке Power Query выберите из файла > из папки.
-
Нажмите кнопку Обзор, чтобы перейти к нужной папке.
Появится список файлов в папке. Нажмите кнопку Изменить, чтобы открыть редактор запросов. В этом примере мы загрузим четыре книги Excel.
-
Убедившись в том, что все нужные файлы присутствуют в списке, нажмите в столбце Содержимое кнопку Объединить двоичные данные.
-
Будет выполнен анализ каждого файла и определен правильный формат, например текстовый, Excel или JSON. В этом примере отображается список листов из первой книги Excel. Выберите нужный лист и нажмите кнопку ОК.
-
При преобразовании разных файлов автоматически создается запрос для консолидации данных из каждого файла и предварительного просмотра. Если результат вас устраивает, нажмите кнопку Закрыть & загрузить.
Когда процесс объединения двоичных файлов завершится, данные листов из списка будут консолидированы на одном листе.
-
Если исходные файлы данных изменятся, вы всегда сможете обновить импортируемые данные. Щелкните в любом месте диапазона данных, а затем перейдите в инструменты запросов > обновить. Кроме того, вы можете легко применить дополнительные шаги преобразования или извлечения, изменяя автоматически созданный запрос-образец, не беспокоясь об изменении или создании дополнительных шагов запроса функций. любые изменения запроса-образец автоматически создаются в связанном запросе функции.
Известные проблемы
При загрузке процедуры объединения двоичных файлов в Excel может появиться такое сообщение об ошибке:
Если вы проигнорируете ошибки и нажмете кнопку ОК, то процесс объединения двоичных файлов будет выполнен и правильно загрузит данные, несмотря на это сообщение. Мы работаем над устранением этой ошибки.
См. также
Справка по Power Query для Excel
Добавление запросов
Обзор объединения файлов (docs.com)
Объединение CSV-файлов в Power Query (docs.com)
Нужна дополнительная помощь?
Russian (Pусский) translation by Andrey Rybin (you can also view the original English article)
По мере того как вы используете и создаете больше рабочих документов Excel, у вас может возникнуть необходимость связать их между собой. Может быть вы захотите написать формулу, которая использует данные с разных Листов. Или может даже вы напишете формулу, которая будет использовать данные из разных Книг (стандартное название рабочего документа Excel — workbook (анг.))
Я понял, что если я хочу, чтобы мои файлы были понятными и аккуратными, лучше разделять большие Листы с данными от формул, которые их обрабатывают. Я часто использую одну Книгу или Лист, который обрабатывает все что мне нужно.
В этом уроке, вы узнаете как добавлять ссылки на данные в Excel. Сначала, мы научимся связывать данные из разных Листов в пределах одной Книги. Затем, мы перейдем к связыванию нескольких Книг Excel, чтобы импортировать и синхронизировать данные между файлами.
Как Можно Быстро Организовать Ссылку Между Данными в Книгах Excel (Смотри и Учись)
Я покажу вам два примера, как можно связать данные из ваших электронных таблиц. Вы узнаете как извлекать данные из другой таблицы в Excel и как организовать связь между двумя Книгами. Мы также рассмотрим основные примеры написания формул, использующих данные из различных Листов в пределах одного рабочего документа.
Давайте посмотрим иллюстрированное руководство по связыванию Листов и Книг в Excel.
Основы: Как Добавить Ссылку между Листами в Excel
Давайте начнем с того, что научимся создавать формулы, которые используют данные с других Листов. Вы возможно уже знаете, что рабочий документ (Книга) Excel, может содержать несколько рабочих страниц (Листов). Каждый лист имеет свою вкладку, и вы можете переключаться между ними щелкая по вкладкам в нижней части документа Excel.
Сложные документы могут содержать большое количество листов. И в какое-то время, вам придется написать формулу которая будет использовать данные из разных листов.
Может вы будете использовать один лист в документе для всех ваших формул, которые обрабатывают данные, а данные будете распределять по отдельным листам.
Давайте разберемся как написать многостраничную формулу, которая работает с данными из разных Листов в пределах одного рабочего документа.
1. Создайте в Excel новую Формулу
Многие формулы в Excel начинаются со знака равно (=). Дважды щелкните или начните печатать в ячейке, и вы начнете создавать формулу, в которую вы хотите вставить ссылку. Например, я собираюсь написать формулу, которая будет суммировать значения из разных ячеек.
Я открываю запись знаком =, и затем щелкаю по первой ячейке на текущем листе, чтобы создать первую часть формулы. Затем, я напечатаю знак +, чтобы добавить значение из второй ячейки в этой формуле.
Пока не завершайте ввод формулы и не жмите Enter! Вам нужно оставить формулу открытой перед тем как вы переключитесь на другой Лист.
2. Переключитесь между Листами в Excel
Пока ваша формула не закончена, щелкните на вкладке другого листа в нижней части программы. Очень важно, чтобы вы не закрывали формулу, перед тем как вы щелкните по другой ячейке, которую вы хотите вставить в формулу.
После того, как вы переключитесь на другой лист, щелкните по ячейке которую вы хотите добавить в формулу. Как вы можете видеть на картинке ниже, Excel автоматически запишет часть формулы, которая будет обращаться к ячейке на другом Листе.
Заметьте на картинке ниже, что для ссылки на ячейку на другом Листе, Excel добавил надпись «Sheet2!B3», которая ссылается на ячейку В3 на листе с названием Sheet2. Вы можете написать это вручную, но когда в щелкаете по ячейке, Excel делает эту надпись автоматически за вас.
3. Закройте Excel формулу
Теперь, вы можете нажать enter, чтобы завершить создание мульти-страничной формулы. Когда вы это делаете, Excel вернется туда, где вы начали создавать формулу и покажет вам результат.
Вы можете продолжать набирать формулу, включая в нее ячейки с других листов и другие ячейки на этом же листе. Продолжайте комбинировать ссылки со всего рабочего документа, на все данные, которые вам нужны.
Повышаем Уровень Сложности: Как Создать Связь Между Несколькими Книгами Excel
Давайте узнаем, как извлечь данные из другого рабочего документа. С помощью этого навыка, вы сможете писать формул, которые связывают данные из разных рабочих документов Excel.
Для этого раздела урока, вам понадобится два рабочих документа, которые вы можете скачать в виде бесплатного приложения к этому уроку. Откройте их оба в Excel, и следуйте дальнейшим указаниям.
1. Откройте Две Рабочие Книги
Давайте начнем создавать формулу, которая будет использовать данные из двух различных документов.
Самый простой способ сделать это, это открыть два документа Excel, одновременно и расположить их рядом друг с другом. Я использую для этого функцию Windows Snap, чтобы каждое окно занимало пол экрана. Вам нужно иметь две книги перед собой, чтобы писать формулу, которая будет взаимодействовать с двумя Книгами.
На рисунке ниже, я открыл два рабочих документа один рядом с другим, для которых я буду создавать формулы. В моем примере, я веду бизнес, и покупаю различные продукты, и продаю их в разные страны. Итак, я использую разные рабочие документы, чтобы отслеживать покупки/продажи и данные по стоимости.
2. Начните Создавать Формулу в Excel
Цена за которую я покупаю товары, может измениться, а так же может измениться соотношение курсов к валюте в которой я получаю выплаты. Поэтому мне нужно иметь список в котором отслеживаются курсы валют и умножать их на стоимость моих закупок. Это подходящая возможность, чтобы использовать информацию из двух файлов и записать формулу, которая будет использовать данные обоих файлов.
Давайте рассмотрим число баррелей нефти которую я покупаю каждый месяц и цену за баррель. Сначала в ячейке из колонки Cost (ячейка C3), я начинаю создавать формулу, щелкнув в ней и нажав знак равно (=), а затем щелкаю по ячейке В3, чтобы взять значение для количества. Теперь, я жму знак *, чтобы уможножить количество на курс.
Итак, ваша формула, пока должна выглядеть так:
=B3*
Не закрывайте пока вашу формулу. Убедитесь, что она осталась открытой перед тем как перейти к следующему шагу; нам нужно указать Excel данные по цене, на которую будет умножаться количество.
3. Переключитесь на Другой Рабочий Документ Excel
Пришло время переключиться на другой рабочий документ, вот почему так важно иметь данные из двух документов между собой, когда вы работаете с двумя Книгами.
Пока ваша формула открыта, щелкните по вкладке другой книги. Затем, щелкните по ячейке в вашей второй Книге, чтоб связать данные из двух файлов Excel.
Excel автоматически добавит ссылку на другой рабочий документа, как часть формулы:
=B3*[Prices.xlsx]Sheet1!$B$2
После того как вы нажмете Enter, Excel автоматически рассчитает окончательную стоимость умножив количество в первой книге на цену из второй книги.
Потренируйте свои навыки работы в Excel, умножая количество товара или объем на соответствующую ему цену из документа «Prices«.
Главное, расположить книги одну рядом с другой, и создавать формулу переключаясь между ними.
При этом, ничего не мешает вам использовать больше, чем два рабочих документа. Вы можете открыть много рабочих документов, на которые вы хотите ссылаться, и создавать формулы, связывающие данные между множеством листов.
Как Обновлять Данные При Работе с Несколькими Книгами
Когда вы используете формулы, которые ссылаются на разные книги Excel, вам нужно позаботится о том, как будут обновляться данные.
Итак, что же произойдет, если данные в Книге, на которую вы ссылаетесь, поменяются? Будут ли выполнены автоматические изменения в вашей Книге, или вам нужно обновлять ваши файлы, чтобы извлечь последние изменения и импортировать их?
Ответ такой, «зависит», и в основном зависит от того, открыты ли два документа одновременно.
Пример 1: Открыты Обе Книги Excel
Давайте проверим пример используя те же книги, что мы использовали раньше. Обе книги открыты. Давайте посмотрим, что произойдет, если мы изменим цену нефти за баррель с 45$ на 75$:
На сриншоте ниже, вы можете видеть, что когда мы изменили цену на нефть, результаты в другом документе автоматически поменялись.
Важно помнить: если оба рабочих документа открыты одновременно, изменения будут внесены автоматически в реальном времени. Когда вы меняете переменную, то информация в другом документе будет автоматически изменена или пересчитана, на основании новых данных.
Пример 2: Если Один Рабочий Документ Закрыт
А что если вы открыли только один рабочий документ? Например,
каждое утро мы обновляем цены на наши товары и валюты, а вечером мы
рассматриваем влияние изменений на наши покупки и продажи.
В следующий раз, когда вы откроете документ, который ссылается на другие таблицы, вы должны увидить сообщение подобное тому, что приведено ниже. Вы можете щелкнуть по кнопке Обновить (Update), чтобы извлечь полседние данные из документа, на который ссылается формула.
Вы так же можете видеть меню, где можно нажать на копку Включить содержимое (Enable Content), чтобы автоматически обновлять данные между файлами Excel.
Подводим итоги и продолжаем обучаться работе в Excell
Написание формул которые берут данные из разных Листов и Книг, важный навык, при работе в Excel. Тем более, что это совсем не сложно, если вы знаете как это делать.
Посмотрите эти дополнительные уроки, чтобы узнать больше о том как работать с программой Excel и как обрабатывать в ней данные. Эти уроки, хорошо подойдут для того, чтобы продолжить обучение.
Дайте мне знать в комментариях, если у вас остались какие-то вопросы, по поводу того как организовать связь между различными рабочими документами Excel.
Как часто, работая с данными, вам удается уместить всю необходимую для анализа информацию в одну таблицу? Скорее всего, никогда.
Чаще всего, нужные нам данные находятся в разных файлах и мы сталкиваемся с необходимостью сопоставить или объединить их из нескольких таблиц в одну.
В этой статье мы рассмотрим наиболее эффективные способы как это сделать.
Как объединить две таблицы Excel с помощью функции ВПР
Если вы хотите сопоставить две таблицы по данным из одного столбца, то тут лучше всего подойдет функция ВПР.
Представим, у нас есть две таблицы. В основной таблице у нас есть данные с наименованиями товаров, продавцов и количестве продаж, а во второй с ценами на эти товары. Мы хотим подставить данные с ценами на товары в таблицу с данными о продажах и посчитать выручку на каждого из продавцов.
Для этого в ячейку D2 вставим формулу с функцией ВПР:
- B2 – ячейка с названием товара, которое мы ищем в таблице с ценами;
- $G$2:$H$4 – диапазон ячеек таблицы с наименованием товаров и ценами. В столбце G содержатся названия товаров, по которым функция осуществляет поиск. В столбце H отражены цены, которые функция ВПР будет подставлять в нашу таблицу. Диапазон ячеек включает в себя значки $, с их помощью диапазон зафиксирован и не будет изменяться при протягивании формулы по другим ячейкам.
- 2 – номер столбца в диапазоне данных с ценами на товары, которые мы хотим подставить в нашу таблицу.
- 0 – точность совпадения данных. Ставим “0”, так как нам необходимо точное совпадение.
Протянем полученную формулу на все строки столбца и получим таблицу с расчетом выручки по каждому товару, для каждого продавца.
Консолидация данных в программе Microsoft Excel
При работе с однотипными данными, размещенными в разных таблицах, листах или даже книгах, для удобства восприятия лучше собрать информацию воедино. В Microsoft Excel с этой задачей можно справиться с помощью специального инструмента, который называется «Консолидация». Он предоставляет возможность собрать разрозненные данные в одну таблицу. Давайте узнаем, как это делается.
Условия для выполнения процедуры консолидации
Естественно, что не все таблицы можно консолидировать в одну, а только те, которые соответствуют определенным условиям:
- столбцы во всех таблицах должны иметь одинаковое название (допускается лишь перестановка столбцов местами);
- не должно быть столбцов или строк с пустыми значениями;
- шаблоны у таблиц должны быть одинаковыми.
Создание консолидированной таблицы
Рассмотрим, как создать консолидированную таблицу на примере трех таблиц, имеющих одинаковый шаблон и структуру данных. Каждая из них расположена на отдельном листе, хотя по такому же алгоритму можно создать консолидированную таблицу из данных расположенных в разных книгах (файлах).
- Открываем отдельный лист для консолидированной таблицы.
В поле «Функция» требуется установить, какое действие с ячейками будет выполняться при совпадении строк и столбцов. Это могут быть следующие действия:
- сумма;
- количество;
- среднее;
- максимум;
- минимум;
- произведение;
- количество чисел;
- смещенное отклонение;
- несмещенное отклонение;
- смещенная дисперсия;
- несмещенная дисперсия.
Как видим, после этого диапазон добавляется в список.
Аналогичным образом, добавляем все другие диапазоны, которые будут участвовать в процессе консолидации данных.
Для того, чтобы автоматически добавить название столбцов в шапку, ставим галочку около параметра «Подписи верхней строки». Для того, чтобы производилось суммирование данных устанавливаем галочку около параметра «Значения левого столбца». Если вы хотите, чтобы при обновлении данных в первичных таблицах обновлялась также и вся информация в консолидированной таблице, то обязательно следует установить галочку около параметра «Создавать связи с исходными данными». Но, в этом случае нужно учесть, что, если вы захотите в исходную таблицу добавить новые строки, то придется снять галочку с данного пункта и пересчитать значения вручную.
Как видим, консолидация данных в Эксель является очень удобным инструментом, благодаря которому можно собрать воедино информацию расположенную не только в разных таблицах и на разных листах, но даже размещенную в других файлах (книгах). Делается это относительно просто и быстро.
Мы рады, что смогли помочь Вам в решении проблемы.
Как объединить файлы Excel и таблицы
При работе с несколькими файлами Microsoft Excel иногда необходимо объединить файлы и таблицы Excel в новый или существующий файл Excel или объедините несколько файлов Excel в один файл. Хотя вы всегда можете скопировать и вставить данные с одного листа на другой или из одного файла в другой, это утомительно, когда их слишком много. В этом посте мы расскажем, как их можно объединить с помощью встроенной функции.
Как объединить файлы и таблицы Excel
Прежде чем приступить к объединению файлов и листов, хорошо спланируйте это. Хотя вы всегда можете переставить листы позже, чем лучше вы планируете, тем меньше часов вы потратите на их сортировку после объединения.
- Объединить таблицы в новый или существующий файл
- Объединить несколько файлов Excel
Хотя функции, которые мы здесь будем использовать, позволят вам перемещать листы, я рекомендую копировать. Если вам снова понадобится исходный файл, у вас будет выбор.
Объединить таблицы в новый или существующий файл
Прежде чем мы начнем слияние, убедитесь, что у вас открыты все файлы Excel. Только когда они открыты, функция слияния Excel может выбрать их в качестве места назначения. Если вы планируете переместить листы из нескольких файлов в новый файл Excel, вы также можете это сделать.
- Откройте исходный файл Excel и переключитесь на лист, который вы хотите скопировать.
- Щелкните вкладку «Главная»> раздел «Ячейки»> «Формат»> «Переместить или скопировать лист».
- Откроется всплывающее окно, в котором вы можете выбрать существующий файл Excel или создать новый файл на ходу.
- Когда ты выберите новый вариант файла, он мгновенно создаст новый файл, но не сохранит его.
- Когда ты выберите существующий файл, у вас есть возможность выбрать, куда будет вставлен лист, т. е. до или после существующих листов или в конце всех листов.
Вы также можете перейти в существующий файл, что удобно, если листов слишком много, и вам нужно вставить лист где-то между ними или переместить его в конец.
Если вы хотите переместить несколько листов в другой файл Excel, то перед использованием «Переместите или скопируйте лист » выберите листы с помощью Ctrl или Shift. В то время как Shift позволяет вам выбирать соседние листы или диапазон листов, Ctrl позволяет вам выбирать отдельные листы. Остальные шаги такие же. Вы можете использовать это для ручного слияния файлов Excel.
Объединить несколько файлов Excel
Слияние файлов Excel — сложная вещь, и для этого мы будем использовать код VBA из ExtendOffice. Это позволит вам объединить несколько файлов или книг, доступных в папке.
- Создайте новую электронную таблицу Excel и нажмите ALT + F11, чтобы открыть раздел разработчика.
- Щелкните меню «Вставка», а затем «Модуль»
- Вставьте код, указанный ниже. Назовите модуль MergeExcel
Затем нажмите Alt + F8 открыть Макрос диалог. Это покажет все макросы на листе. Выбирать MergeExcel и нажмите Пробег. Вам будет предложено сохранить файлы, обязательно сделайте это. После этого все листы из разных файлов Excel станут доступны в файле Excel, в котором вы запускали макрос. На веб-сайте ExtendOffice есть много таких макросов, и я настоятельно рекомендую посетить их по адресу extendoffice.com.
Тем не менее, это не будет гладким опытом с первой попытки. Будьте уверены, что он не удалит какие-либо файлы, но я бы посоветовал сохранить резервную копию файлов. Поэкспериментируйте со случайными данными и проверьте, получаете ли вы желаемый результат с помощью макроса.
Мы надеемся, что руководство было легким для понимания, и вы можете объединить файлы Excel и таблицы.
Этот макрос предназначен для сбора (загрузки) информации из файлов Excel, расположенных в одной папке.
Для работы этого макроса, помимо него самого, вам понадобится добавить в свой файл:
- функцию FilenamesCollection для получения списка файлов в папке
- функцию GetFolder для вывода диалогового окна выбора папки с запоминанием выбранной папки
- прогресс-бар для отображения процесса обработки файлов (модуль класса и форму)
Если при тестировании макроса у вас возникает ошибка, что не найдена та или иная функция,
— проверьте, все ли необходимые компоненты (которые перечислены выше) вы добавили в свой файл.
Этот макрос я публикую прежде всего для себя (поскольку использую этот код чуть ли ни в каждой третьей своей программе),
поэтому я не буду помогать вам в настройке этого макроса, если у вас он вдруг не заработает.
Макрос при запуске выдает диалоговое окно для выбора папки, в которой расположены обрабатываемые файлы,
после чего открывает каждый из файлов, считывает из него данные, помещает их в текущую книгу (из которой запущен макрос),
и закрывает обработанный файл без сохранения изменений.
После того, как очередной файл обработан, он перемещается во вторую папку («архив»).
Код макроса:
Sub ИмпортДанныхИзЗаявок() On Error Resume Next: Err.Clear ' запрашиваем пути к папкам с файлами InvoiceFolder$ = GetFolder(1, , "Выберите папку с файлами заявок (из Outlook)") If InvoiceFolder$ = "" Then MsgBox "Не задана папка с заявками", vbCritical, "Обработка заявок невозможна": Exit Sub ArchieveFolder$ = GetFolder(2, , "Выберите папку, куда будут помещаться обработанные файлы заявок") If ArchieveFolder$ = "" Then MsgBox "Не задана папка для архива заявок", vbCritical, "Обработка заявок невозможна": Exit Sub Dim coll As Collection ' загружаем список файлов по маске имени файла Set coll = FilenamesCollection(InvoiceFolder$, "Заявка №*от*.xls*", 1) If coll.Count = 0 Then MsgBox "Не найдено ни одной заявки для обработки в папке" & vbNewLine & InvoiceFolder$, _ vbExclamation, "Нет необработанных заявок" Exit Sub End If Dim pi As New ProgressIndicator: pi.Show "Обработка заявок", , 2 pi.StartNewAction , , , , , coll.Count ' отображаем прогресс-бар Dim WB As Workbook, sh As Worksheet, ra As Range Application.ScreenUpdating = False ' отключаем обновление экрана (чтобы процесс открытия файлов не был виден) ' перебираем все найденные в папке файлы For Each Filename In coll ' обновляем информацию на прогресс-баре pi.SubAction "Обрабатывается заявка $index из $count", "Файл заявки: " & Dir(Filename), "$time" pi.Log "Файл: " & Dir(Filename) ' открываем очередной файл в режиме «только чтение» Set WB = Nothing: Set WB = Workbooks.Open(Filename, False, True) If WB Is Nothing Then ' не удалось открыть файл pi.Log vbTab & "ОШИБКА при загрузке файла. Файл не обработан." Else ' файл успешно открыт Set sh = WB.Worksheets(1) ' будем брать данные с первого листа ' берем диапазон ячеек с ячейки B1 до последней заполненной в столбце B Set ra = sh.Range(sh.Range("b1"), sh.Range("b" & sh.Rows.Count).End(xlUp)) ' ==== переносим данные в наш файл (shb - кодовое имя листа, куда помещаем данные) shb.Range("a" & shb.Rows.Count).End(xlUp).Offset(1).Resize(, ra.Rows.Count).Value = _ Application.WorksheetFunction.Transpose(ra.Value) ' ==== конец обработки данных из очередного файла WB.Close False: DoEvents ' закрываем обработанный файл без сохранения изменений pi.Log vbTab & "Файл успешно обработан." ' перемещаем обработанный файл из папки InvoiceFolder$ в папку ArchieveFolder$ Name Filename As ArchieveFolder$ & Dir(Filename, vbNormal) End If Next ' закрываем прогресс-бар, включаем обновление экрана pi.Hide: DoEvents: Application.ScreenUpdating = True MsgBox "Обработка заявок завершена", vbInformation End Sub
Во вложении — файл со всеми необходимыми макросами для сбора данных из других файлов Excel
Поддерживаемые Excel форматы файлов
Смотрите также книгой(второй файл с папку, которую откроют: Подскажите как будет vbInformation End Sub .Cells(LastRowСводный + СколькоОбъединять, Then MsgBox «В If If IsEmpty(ЛистИсточник.Cells(31 _ «Если это форматами – жмитеDarkSacred в конец конечного просто показал, что Excel разделителей.
SYLK кода. Позволяет использоватьФайл Excel можно сохранить данными), в которой предполагаемые участники. Нажимаем выглядеть код если
lalike 15)).Merge End With выбранной папке есть + i, 6).Value) последняя ячейка столбца OK., да и можно файла? откуда берется.lalikeCSV (разделители — запятые)SLK проекты VBA и в другом формате. хранятся исходные данные «Сохранить». ситуация попроще:: СПАСИБО!!!! ’22 столбец If файлы недопустимых форматов = False Then C11 или столбца
Форматы файлов Excel
К коду в |
ли несколько диапазонов |
lalike |
Busine2009 |
: какой процедурой выплняется |
CSVФормат Symbolic Link. Сохраняет листы макросов Excel Для этого на и результаты.Внимание! Нельзя использовать дляЕсть около 1000использовал на все IsEmpty(ЛистИсточник.Cells(LastRowИсточник, 17).Value) = (не Excel).», vbCritical ЛистКонечный.Cells(LastRowКонечный + j, |
C17, то проверьте файле Word приложена |
выделять и определять |
: после таблице в: т.е. только данные сборка информации сФормат с разделителями-запятыми только активный лист. 4.0 (XLM). вкладкеAlex Dark сохранения общего файла |
файлов с абсолютно |
100%. |
False Then ЛистСводный.Cells(LastRowСводный Exit Sub End 25).Value = ЛистИсточник.Cells(31 |
форматирование этой ячейки: |
пояснительная записка, которую |
положение конечных ячеек? источнике еще есть внутри этих файлов эксель файлов?Форматированный текст (разделители —Примечание:Надстройка Excel 97—2003Файл: Очень просто. |
веб-сервер. |
одинаковыми таблицами (отличаются |
очень удобно и + 1, 22).Value If Next oFile + i, 6).Value » & vbCr нужно обязательно прочитатьlalike кое-что, но я меняются что ли?Комментарий модератора |
пробелы) |
При сохранении книги в |
XLAвыберите пункт |
Макросом открываешь файл, |
Теперь проверим и обновим |
только данные) и сэкономило столько времени. = ЛистИсточник.Cells(LastRowИсточник, 17).Value ‘Собственно заполнение сводного |
Else ЛистКонечный.Cells(LastRowКонечный + |
& _ «в |
и если что-то: какой процедурой выплняется |
могу это удалить. |
lalike |
Именуйте темы осмысленно.RTF |
любом текстовом формате |
Надстройка Excel 97-2003, дополнительная |
Сохранить как |
считываешь данные, закрываешь. |
ссылки: |
необходимо получить вя вот думаю, Else ЛистСводный.Cells(LastRowСводный + файла данными из j, 25).Value = этой ячейке должно не понятно, то сборка информации сBusine2009: Название темы должно |
RTF. Только из Excel. |
теряются все элементы |
программа, предназначенная для. Форматы файлов, доступныеCTAJIuHВкладка «Данные». «Подключения». сводный файл такую |
как бы сделать |
1, 22).Value = |
файлов-источников. For Each 0 End If быть число и спросить. эксель файлов?,Busine2009 максимально полно отражатьВнедренный объект форматирования. |
выполнения дополнительного кода. |
в диалоговом окне |
:Изменить ссылки / изменить же таблицу но эту програмку универсальной.. 0 End If oFile In oFolder.Files |
Форматы текстовых файлов
Next i With |
шрифт должен быть |
Sub m_1() Dim |
Комментарий модераторафайл-источник не изменяется. |
, |
ее содержание.GIF, JPG, DOC, XLSФормат Поддерживает использование проектов |
Сохранение документаAlex Dark |
связи. Если такая |
содержащую результат обработкиBusine2009 With ЛистСводный .Range(.Cells(LastRowСводный Set ФайлИсточник = ЛистКонечный .Cells(LastRowКонечный + жирным.», vbCritical Exit ЛистКонечный2 As Excel.WorksheetИменуйте темы осмысленно.нужно заносить данныеВ одной папкеdzug: Той которую напишите.. |
или BMP |
Расширение |
VBA., зависят от типа, Видимо что то кнопка отсутствует, в исходных таблиц (: + 1, 22), Workbooks.Open(oFile.Path) Set ЛистИсточник 1, 4).Value = Sub End If Dim Флаг As |
Название темы должно |
из файлов-источников. |
около 200 ExcellalikeОбъекты Microsoft Excel, объектыОписаниеКнига Excel 4.0 активного листа (обычный лагануло… последняя строка листе нет связанных например сумму значенийlalike .Cells(LastRowСводный + СколькоОбъединять, |
= ФайлИсточник.Worksheets(1) Set |
ЛистИсточник.Cells(8, 4).Value .Range(.Cells(LastRowКонечный |
LastRowИсточник = ActiveCell.Row Boolean Dim oCell максимально полно отражатьBusine2009 документов. Каждый документ |
: хм, я здесь |
правильно зарегистрированных программ, |
DBF 3, DBF 4XLW лист, лист диаграммы не отправилась… файлов. соответствующих ячеек) ?, 22)).Merge End With ЛистСводный = Workbooks(«Сводный.xls»).Worksheets(1) + 1, 4), ‘Заполним сначала столбец |
As Excel.Range Dim |
ее содержание. |
: разный. Я беру недавно, может подскажете: поддерживающих OLE 2.0.DBFФормат файла Excel 4.0, или другой типВсе это делоПереходим на вкладку «Состояние»,Совместный доступ в Microsoft |
в смысле «универсальной»? |
’26 столбец If |
LastRowСводный = ЛистСводный.Cells.SpecialCells(xlCellTypeLastCell).Row .Cells(LastRowКонечный + СколькоОбъединять, 17 в конечном ЛистИсточник As Excel.WorksheetDarkSacred: Вот смотри, толькоlalike данные из определенныхесть иного .xls (OwnerLink), а такжеdBase III и IV. |
в котором сохраняются |
листа). |
нужно сделать программно… чтобы проверить имеющиеся |
Excel дает возможность |
Начните изучать потихоньку |
IsEmpty(ЛистИсточник.Cells(LastRowИсточник, 11).Value) = metka_1: Set АктивнаяЯчейка |
4)).Merge .Cells(LastRowКонечный + файле, чтобы знать, Dim ЛистКонечный As я его не,
Другие форматы файлов
ячеек, но в |
файлов, |
Picture или другой |
Файлы этого формата |
только обычные листы, |
Примечание:Т.е. на данный связи. На работоспособность работать с одним VBA, я помогу False Then ЛистСводный.Cells(LastRowСводный = Application.InputBox(«Выберите ячейку: |
1, 5).Value = |
сколько объединять ячеек |
Excel.Worksheet Dim i проверял, если чтот.е. у вас некоторых документах диапазонсобираю все в формат презентации можно открывать в листы диаграмм и При сохранении файла в момент у меня связей указывает кнопка файлом сразу нескольким на первых порах, + 1, 26).Value R1C1, последнюю ячейку ЛистИсточник.Cells(10, 4).Value .Range(.Cells(LastRowКонечный |
в дальнейшем. For |
As Long Dim |
спрашивай одноразовая работа что определенных ячеек изменен. один,Связанный объект Microsoft Excel, но макросов. В приложении другом формате может «физически» открывается файл, ОК. пользователям. Десять-двадцать человек т.к. обладаю только = ЛистИсточник.Cells(LastRowИсточник, 11).Value » & _ + 1, 5), i = 1 j As Long’Выбираем файлы для |
ли: есть папка |
Из них я |
беру определенные ячейки,GIF, JPG, DOC, XLS сохранять файлы Microsoft Excel 2010 можно быть утрачена часть а это какОткрываем меню Microsoft Office. на разных компьютерах неполными базовыми знаниями. Else ЛистСводный.Cells(LastRowСводный + «столбца C11 или .Cells(LastRowКонечный + СколькоОбъединять, To LastRowИсточник - Dim LastRowКонечный As загрузок nFile = |
Форматы файлов, использующие буфер обмена
с 200 Excel-файлами. собираю данные врасположение ячеек в или BMP Excel в формате открыть книгу в форматирования, данных и то не устраиваетНажимаем «Открыть». одновременно вносят какие-то И будете превращать 1, 26).Value = последнюю ячейку столбца 5)).Merge .Cells(LastRowКонечный + 31 Step 2
Long Dim LastRowИсточник |
Application.GetOpenFilename( _ FileFilter:=»xls-файл |
Вы заносите нужные |
один документ. |
некоторых местах меняется. |
OwnerLink, ObjectLink, Link, Picture dBase нельзя. этом формате, но возможностей. меня.Выбираем общую книгу. данные в один этот код в 0 End If C17.», Type:=8) If 1, 6).Value = |
If IsEmpty(ЛистИсточник.Cells(31 + |
As Long Dim |
(*.xls),*.xls», _ Title:=»Выберите данные из этих |
данные меняются внутри |
названия файлов могу |
или другой формат.Таблица OpenDocument сохранить в немЧтобы открыть файл, созданныйМожно ли как |
Когда книга открыта, нажимаем |
документ. Где находится |
универсальный. |
With ЛистСводный .Range(.Cells(LastRowСводный |
АктивнаяЯчейка.Address(ReferenceStyle:=xlR1C1) = «R1C1″ |
ЛистИсточник.Cells(11, 4).Value .Range(.Cells(LastRowКонечный |
i, 1).Value) = СколькоОбъединять As Long |
файлы для загрузки», |
200-х файлов в документа 1.xls и менять. |
Рисованный объект Office |
ODS |
файл Excel нельзя. |
в другом формате то не открывая |
на кнопку Microsoft |
определенная информация, работают |
lalike |
+ 1, 26), Then ЛистСводный.Cells(LastRowСводный + |
+ 1, 6), False Then j Dim Сумма ‘Проверка, _ MultiSelect:=True) If конечный файл и других подобных, из |
пока только занимаюсь |
EMFТаблица OpenDocument. Файлы приложения |
Works 6.0—9.0 (в более ранней |
«физически» отредактировать файл |
Office. Переходим на |
определенные формулы.: отлично! огромное спасибо, |
.Cells(LastRowСводный + СколькоОбъединять, |
1, 4).Value = |
.Cells(LastRowКонечный + СколькоОбъединять, |
= j + |
что добавлен лист |
IsEmpty(nFile) Or Not на этом работа которых я собираю все делаю вручную,Формат объекта-рисунка Office или Excel 2010 можноXLR версии Excel илиAlex Dark вкладку «Параметры Excel»«Главный пользователь» имеет возможность я сейчас читаю |
26)).Merge End With |
ЛистИсточник.Cells(8, 4).Value ЛистСводный.Cells(LastRowСводный |
6)).Merge .Cells(LastRowКонечный + 1 ЛистКонечный.Cells(LastRowКонечный + в конечную книгу IsArray(nFile) Then Exit завершена? все в один но такими темпами Picture (EMF). |
Форматы файлов, не поддерживаемые в Excel
сохранять в формате,Таблица, сохраненная в приложении в другой программе),: Это как ??? (в нижней части отслеживать действия рабочей А. Гарнаева, Самоучитель ‘Теперь с необъединёнными + 1, 5).Value
1, 7).Value = |
j, 17).Value = |
для записи в |
Sub ‘выбран ли |
lalike |
документ => 2.xls мне не справиться… |
Текст |
который позволяет открывать Microsoft Works версий |
откройте вкладку Телепатически что ли? |
меню). |
группы, добавлять/удалять участников, |
VBA. ячейками поработаем. For |
= ЛистИсточник.Cells(10, 4).Value |
ЛистИсточник.Cells(20, 4).Value .Range(.Cells(LastRowКонечный |
ЛистИсточник.Cells(31 + i, |
нём имён файлов, |
файл для загрузок |
:кажется это может |
Busine2009 |
TXT |
их в приложениях 6.0—9.0. |
Форматы файлов, не поддерживаемые в Excel Starter
ФайлВы термин «физически»«Общие» — «Личная настройка» редактировать противоречивые изменения.Busine2009 i = 1 ЛистСводный.Cells(LastRowСводный + 1,
+ 1, 7), |
1).Value End If |
из которых данные |
qFile = UBound(nFile) |
Sub Main() |
пригодиться |
: |
Отображаемый текст, текст ПВТ. |
электронных таблиц, поддерживающих |
Примечание: |
и выберите команду |
для нас расшифруйте, |
— «Имя пользователя». |
Как настроить совместную |
Открытие и просмотр файлов в неподдерживаемых форматах
: To LastRowИсточник - 6).Value = ЛистИсточник.Cells(11, .Cells(LastRowКонечный + СколькоОбъединять, Next i j
-
уже получены. For ‘запоминаем количество файловDim myPath AsSub CombineWorkbooks()
-
lalikeВеб-страница в одном файле формат таблиц OpenDocument, Этот формат поддерживается толькоОткрыть что он означает Вводим опознавательную информацию
См. также:
работу в Excel.lalike 32 Step 2 4).Value ЛистСводный.Cells(LastRowСводный +
support.office.com
Работа с файлами Excel
7)).Merge .Cells(LastRowКонечный + = 0 СколькоОбъединять Each ЛистКонечный2 In ‘————————— Set sh
String, myName AsDim FilesToOpen,MHT, MHTML таких как Google
в Excel Starter.
. Книги Excel 97—2003 в вашем представлении. (имя, ник-нейм).
В книге Excel со,
j = j 1, 7).Value =
1, 8).Value =
= ЛистКонечный.Cells.SpecialCells(xlCellTypeLastCell).Row - Workbooks(«Конечный.xls»).Worksheets If ЛистКонечный2.Name
= ActiveSheet ‘запоминает String, i As
Dim x Asя в ExcelВеб-страница в одном файле Docs или OpenOffice.org
Формат автоматически открываются вЕсли я правильноВсе. Можно редактировать информацию,
совместным доступом нечто ты именно + 1 If ЛистИсточник.Cells(20, 4).Value ЛистСводный.Cells(LastRowСводный ЛистИсточник.Cells(10, 11).Value .Range(.Cells(LastRowКонечный LastRowКонечный ‘Будем отдельно
= «Имена файлов» лист куда надо Integer Integer не работал практически, (MHT или MHTML).
Calc. Таблицы в
- Расширение
- режиме совместимости. Чтобы
- телепатировал ваши мысли, вводить новую. После
все задачи можно читаешь? Какой раздел IsEmpty(ЛистИсточник.Cells(31 + i, + 1, 8).Value
+ 1, 8), заносить данные в
Then Флаг = вносить информацию RowWith Application.FileDialog(msoFileDialogFolderPicker)On Error GoTo поэтому не знаю,
Этот формат файла формате ODS такжеОписание получить доступ ко то как то работы – сохранить. выполнять. этой книги и 14).Value) = False = ЛистИсточник.Cells(10, 11).Value .Cells(LastRowКонечный + СколькоОбъединять, отношении ячеек конечного True Exit For
= 2 ‘начинаем.Title = «Укажите ErrHandler можно это сделать
объединяет встроенные рисунки, можно открывать в
Форматированный текст (разделители — всем новым возможностям
такСлучается, что при открытии
Нельзя: для чего ты Then ЛистСводный.Cells(LastRowСводный +
ЛистСводный.Cells(LastRowСводный + 1,
8)).Merge .Cells(LastRowКонечный + файла, имеющих и End If Next
запись с 3
рабочую папку»: .ShowApplication.ScreenUpdating = False
или нет средствами приложения, связанные документы приложении Excel 2010. пробелы)
Excel 2010, сохраните’ запоминает текущую книги Excel сСоздавать таблицы Excel. читаешь этот раздел
j, 19).Value = 11).Value = ЛистИсточник.Cells(17, 1, 11).Value = не имеющих объединение.
ЛистКонечный2 If Флаг строчки For i
If .SelectedItems.Count =FilesToOpen = Application.GetOpenFilename самого Excel. и другие вспомогательные
При сохранении иPRN эту книгу в книгу Set OldBook совместным доступом кСоздавать, менять или просматривать книги?
ЛистИсточник.Cells(31 + i, 11).Value ЛистСводный.Cells(LastRowСводный + ЛистИсточник.Cells(17, 11).Value .Range(.Cells(LastRowКонечный ‘Сначала поработаем с
= False Then = 1 To 0 Then Exit
_Наверное, можно решить элементы, на которые
открытии ODS-файлов можетФормат для Lotus с формате Excel 2010.
= ActiveWorkbook … файлу появляется запись сценарии.lalike
14).Value Else ЛистСводный.Cells(LastRowСводный 1, 12).Value = + 1, 11), теми ячейками, которые
MsgBox «Не добавлен qFile Set book Sub(FileFilter:=»Microsoft Excel Files вашу задачу с есть ссылки в быть потеряно форматирование. разделителями в виде
Однако можно продолжать … … ‘ «Файл заблокирован». Сохранить
Удалять листы.: еще вот посоветовали + j, 19).Value ЛистИсточник.Cells(17, 15).Value ЛистСводный.Cells(LastRowСводный .Cells(LastRowКонечный + СколькоОбъединять, нужно объединить. ’15
лист в конечный = Workbooks.Open(nFile(i)) ‘заполняем
myPath = .SelectedItems(1)
(*.xls), *.xls», _
помощью VBA, тогда документе.
PDF пробелов. Сохраняется только
работать в режиме
открываем книгу, с не получается. При
Объединять либо разделять ячейки.Дж. Уокенбаха. «Профессиональное
= 0 End + 1, 15).Value
11)).Merge .Cells(LastRowКонечный + столбец For i
файл для записи общую информацию Row
& «»
MultiSelect:=True, Title:=»Files to
вам нужно более
Примечание:PDF
активный лист
совместимости, сохраняя исходный
именем из переменной
последующем открытии оказывается,
Работать с XML-данными (импортировать,
программирование на VBA
If If IsEmpty(ЛистИсточник.Cells(31
= 0 ЛистСводный.Cells(LastRowСводный
1, 12).Value =
= 1 To
имён файлов, из
= Row +End With Merge»)
подробно описать, что Этот формат не поддерживаетсяЭтот формат файла сохраняетТекст (разделители — знаки формат файла для myPath Workbooks.Open Filename:=myPath что общий доступ добавлять, обновлять, удалять
в Excel 2002 + i, 13).Value) + 1, 17).Value ЛистИсточник.Cells(17, 15).Value .Range(.Cells(LastRowКонечный
LastRowИсточник — 31 которых данные уже 1 ‘переходим наApplication.ScreenUpdating = False:If TypeName(FilesToOpen) = вам нужно. в Excel 2007. форматирование документа и табуляции) обратной совместимости. Set WB = отключен. Возможные причины и т.д.). (2003)», «Подробное руководство
= False Then = 0 ЛистСводный.Cells(LastRowСводный + 1, 12), Step 2 If взяты.» & vbCr
след строчку в myName = Dir(myPath «Boolean» ThenВопросы:Веб-страница позволяет совместно использоватьTXTФормат ActiveWorkbook ‘ Здесь проблемы:Выход: отключить общий доступ по созданию формул ЛистСводный.Cells(LastRowСводный + j, + 1, 19).Value .Cells(LastRowКонечный + СколькоОбъединять, IsEmpty(ЛистИсточник.Cells(31 + i, & _ «Или общей таблице sh.Cells(Row, & «*.xls»): i
MsgBox «Не выбраноГде расположены Excel-файлы?HTM, HTML файлы. Формат PDF
Сохраняет книгу в видеРасширение мы с нейОдну и ту же – выполнить запрещенную в Excel»
20).Value = ЛистИсточник.Cells(31 = 0 ЛистСводный.Cells(LastRowСводный 12)).Merge End With 12).Value) = False лист имеет неправильное 1) = Cells(8,
= 1: Cells.ClearContents ни одного файла!»Какие ячейки вы берёте?Формат HTML. гарантирует, что при
текстового файла, разделенногоОписание
что то делаем,
часть документа редактируют задачу – снова
Busine2009 + i, 13).Value + 1, 20).Value ‘Делаем запись на
Then Сумма = имя.», vbCritical Exit 4) sh.Cells(Row, 2)Do While myNameGoTo ExitHandlerЗачем вы можете менятьПримечание: просмотре файла на знаками табуляции, дляКнига Excel
а именно считываем несколько пользователей. К
включить доступ.
, я пока знакомлюсь Else ЛистСводный.Cells(LastRowСводный + = 0 ЛистСводный.Cells(LastRowСводный добавленном в конечную
Сумма + ЛистИсточник.Cells(31
Sub End If = Cells(10, 4)
<> «»End If названия файлов?
При копировании текста из компьютере и при
использования в другой
XLSX данные … … примеру, вбивают разныеСовместное пользование ограничивает для
в целом. j, 20).Value =
+ 1, 21).Value книгу листе, что + i, 12).Value ‘Проверка, что с
sh.Cells(Row, 3) =Cells(i, 2).Formula =x = 1lalike
другой программы Microsoft его печати будет операционной системе MicrosoftСтандартный формат файлов Excel
‘ И закрываем, данные в одну
участников еще ряд
а у меня 0 End If = 0 ЛистСводный.Cells(LastRowСводный
данный файл-источник обработан.
End If Next данного листа данные
Cells(11, 4) sh.Cells(Row, «='» & myPath
While x Workbooks.Open: Вобщем, имеется куча Excel вставляет этот
сохранено исходное форматирование Windows и гарантирует, 2010 и Excel за ненадобностью WB.close ячейку. Возникает блокировка. задач: еще такой вопрос,
If IsEmpty(ЛистИсточник.Cells(31 + + 1, 22).Value With Workbooks(«Конечный.xls»).Worksheets(«Имена файлов»)
i ЛистКонечный.Cells(LastRowКонечный + ещё не брались. 4) = Cells(13, & «[» & Filename:=FilesToOpen(x) .xls файлов в текст в формате и данные файла
что символы табуляции, 2007, основанный на ‘ Возвращаемся назадВо время пользования совместнымНедопустимов файле источнике i, 12).Value) =
= 0 ЛистСводный.Cells(LastRowСводный .Range(«A» & .Cells.SpecialCells(xlCellTypeLastCell).Row 1, 15).Value = With Workbooks(«Конечный.xls»).Worksheets(«Имена файлов»)
4) ‘и т.д. myName & «]Лист1’!$C$5″Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) одной папке.
HTML независимо от нельзя будет легко разрывы строк и языке XML. В
в книгу OldBook.Select файлом ведется журналРеально
в столбе X False Then ЛистСводный.Cells(LastRowСводный + 1, 23).Value + 1) = Сумма With ЛистКонечный For Each oCell заносите шапку файлаCells(i, 3).Formula =x = x + 1на листе 1
формата исходного текста. изменить. Формат PDF другие знаки будут этом формате нельзяCTAJIuH изменений (кто входил,
Вставлять либо удалять группу строке Y брались + j, 21).Value = 0 ЛистСводный.Cells(LastRowСводный ActiveWorkbook.Name End With
CyberForum.ru
Работа с файлами Excel
.Range(.Cells(LastRowКонечный + 1, In .Range(«A» & ‘теперь переходим к «='» & myPath
Wend находится нужная информация.Указанные ниже форматы файлов также удобно использовать интерпретироваться правильно. Сохраняется
сохранять код макросов: когда, что делал). ячеек
данные, = ЛистИсточник.Cells(31 + + 1, 24).Value ‘Сохранение измений в 15), .Cells(LastRowКонечный + .Cells.SpecialCells(xlCellTypeLastCell).Row) If oCell.Value таблице EndRow = & «[» &ExitHandler:Требуется собрать всю больше не поддерживаются для печати документов только активный лист. Microsoft Visual BasicAlex Dark Книга увеличивается. НачинаетДобавлять строку или столбецпотом в другом i, 12).Value Else = 0 ЛистСводный.Cells(LastRowСводный конечной книге. Workbooks(«Конечный.xls»).Save СколькоОбъединять, 15)).Merge End = ActiveWorkbook.Name Then Range(Range(«A1»), Range(«A1»).SpecialCells(xlLastCell)).Rows.count ‘определяем myName & «]Лист1’!$D$8″Application.ScreenUpdating = True информацию с этих в Excel 2016, Excel в типографии.Текст (Macintosh) для приложений (VBA), наверное я как «глючить».Добавлять либо изменять условные файле в столбе ЛистСводный.Cells(LastRowСводный + j, + 1, 25).Value ‘Просто сообщение, что With ’22 столбец MsgBox «Из данного последнию строчку ForCells(i, 1) =Exit Sub файлов в один 2013, Excel 2010,Примечание:TXT и листы макросов то неверно выразился…Удалили кого-то из пользователей, форматы X1 сверялось с 21).Value = 0 = 0 ЛистСводный.Cells(LastRowСводный работа макроса завершена. If IsEmpty(ЛистИсточник.Cells(LastRowИсточник, 17).Value) файла-источника данные уже j = 32 myName: i =ErrHandler: .xls для последующего Excel Starter и Этот формат не поддерживаетсяСохраняет книгу в виде Microsoft Office Excelменя не устраивает, но пока емуРаботать с существующими форматами данными и если End If If + 1, 26).Value MsgBox «Данные из = False Then брались», vbCritical Exit To EndRow ‘смотрим
i + 1:MsgBox Err.Description
анализа. Excel 2007. Открывать в Excel 2007.
текстового файла, разделенного
4.0 (XLM). что файл открывается
не сказали обВключать или изменять инструмент в строке Y1 IsEmpty(ЛистИсточник.Cells(31 + i,
= 0 GoTo файла-источника взяты», vbInformation ЛистКонечный.Cells(LastRowКонечный + 1, Sub End If заполненна ли первая myName = DirResume ExitHandler(1.xls — пример такие файлы или
Документ XPS знаками табуляции, дляКнига Excel с поддержкой так, как будто
этом. Тогда блокировка «Проверка данных» оно сошлось, то 8).Value) = False
metka_2 ElseIf АктивнаяЯчейка.Column End SubЕщё будет 22).Value = ЛистИсточник.Cells(LastRowИсточник, Next oCell End ячейка в строчкеLoop: [A:C].Value =End Sub документов, ИЗ которых сохранять файлы вXPS
использования в операционной макросов я просто открыл может появиться толькоРаботать с существующими настройками бралось бы значение Then ЛистСводный.Cells(LastRowСводный +
<> 11 And макрос для проверки, 17).Value Else ЛистКонечный.Cells(LastRowКонечный With Set ЛистИсточник j If Len(Cells(j, [A:C].ValueДобавлено через 1 минуту берется информация. желтым этих форматах невозможно.Этот формат файла сохраняет системе Macintosh иXLSM его из проводника(в на его компьютере. проверки из столба Z1 j, 23).Value = АктивнаяЯчейка.Column <> 17 все ли файлы-источники + 1, 22).Value = ActiveWorkbook.Worksheets(1) Set 1).Text) <> 0End Subздесь происходит просто обозначены ячейки нужные.Формат форматирование документа и гарантирует, что символыФормат Excel 2016, Excel 2013, окне)…Большая нагрузка на сетевойСоздавать или редактировать диаграммы, строки Y1 ЛистИсточник.Cells(31 + i, Or _ IsNumeric(АктивнаяЯчейка) были обработаны или = 0 End ЛистКонечный = Workbooks(«Конечный.xls»).Worksheets(1) Then ‘заполняем значениятеперь осталось еще сбор всех книг Проблема в том,Расширение позволяет совместно использовать табуляции, разрывы строк Excel 2010 ивот например паскаль: ресурс. сводные отчетыи вставлялось бы 8).Value Else ЛистСводный.Cells(LastRowСводный = False Or нет. If With ЛистКонечный LastRowКонечный = ЛистКонечный.Cells.SpecialCells(xlCellTypeLastCell).Row и зтаблицы sh.Cells(Row, решить момент с в одну. что в диапазонеИдентификаторы типа буфера обмена файлы. Формат XPS и другие знаки Excel 2007 на открыть файл дляЧто можно сделать, еслиРаботать с имеющимися диаграммами в файл источник + j, 23).Value АктивнаяЯчейка.Font.Bold = FalseBusine2009 .Range(.Cells(LastRowКонечный + 1, If Selection.Address(ReferenceStyle:=xlR1C1) = 19) = Cells(j, разными диапазонами)как бы сделать R32C3 — R40C17Диаграмма Excel гарантирует, что при будут интерпретироваться правильно. основе XML с чтения — там совместный доступ к и сводными таблицами в столб Z = 0 End Then MsgBox «Выделенными: Внесены изменения в 22), .Cells(LastRowКонечный + «R1C1″ Then ЛистКонечный.Cells(LastRowКонечный 14) sh.Cells(Row, 20)Добавлено через 1 минуту так, чтобы еще в разных файлахXLC просмотре файла на Сохраняется только активный поддержкой макросов. Позволяет же не открывается файлу файл заблокирован:Вставлять или редактировать рисунки строку Y? If If IsEmpty(ЛистИсточник.Cells(31 ячейками могут быть пояснительную записку. СколькоОбъединять, 22)).Merge End + 1, 4).Value = Cells(j, 13)Busine2009 и определенные ячейки..? меняется количество строк,Форматы файлов Excel 2.0, компьютере и при лист. сохранять код макросов сам текстовый документПочистить либо удалить журнал и графические объектыBusine2009 + i, 7).Value) только R1C1, последняяlalike With ’26 столбец = ЛистИсточник.Cells(8, 4).Value ‘ и т.д., да и еще соответственно и расположение 3.0 и 2.x его печати будетТекст (MS-DOS) VBA и листы в окне блокнота) изменений.Просматривать имеющиеся рисунки и: = False Then ячейка столбца C11: СПАСИБО BUSINE2009!!!! If IsEmpty(ЛистИсточник.Cells(LastRowИсточник, 11).Value) ЛистКонечный.Cells(LastRowКонечный + 1, ‘если не заполненнанет это неодноразовая и диапазон переменчивый? ячеек. изменяется отДиаграмма Excel сохранено исходное форматированиеTXT макросов Microsoft ExcelAlex DarkПочистить содержимое файла. графические объектыlalike ЛистСводный.Cells(LastRowСводный + j, или последняя ячейкаВсе РАБОТАЕТ!!! = False Then 5).Value = ЛистИсточник.Cells(10, первая ячейка смотрим работа. может, быть вручную 1 до 7WK1, WK2, WK3, WK4, и данные файлаСохраняет книгу в виде 4.0 (XLM)., на данный момент,Отменить, а потом сноваВставлять или менять гиперссылки, 24).Value = ЛистИсточник.Cells(31 столбца C17.» &Busine2009 ЛистКонечный.Cells(LastRowКонечный + 1, 4).Value ЛистКонечный.Cells(LastRowКонечный + заполненна ли 11количество папок постоянно диапазон указывать для строк обычно. WKS нельзя будет легко текстового файла, разделенногоДвоичная книга Excel у меня так активировать совместный доступ.Переходить по имеющимся гиперссылкама что в + i, 7).Value vbCr & _: Вариант с автоматическим 26).Value = ЛистИсточник.Cells(LastRowИсточник, 1, 6).Value = ячейка Else If увеличивается. Каждй месяц каждого документа?2.xls — этоФорматы файлов Lotus 1-2-3 изменить. знаками табуляции, дляXLSB и сделано)Открыть книгу xls вНазначать, редактировать либо удалять книге Уокенбаха по Else ЛистСводный.Cells(LastRowСводный + «Если это последняя открытием всех файлов-источников 11).Value Else ЛистКонечный.Cells(LastRowКонечный ЛистИсточник.Cells(11, 4).Value ЛистКонечный.Cells(LastRowКонечный Len(Cells(j, 11).Text) <> по 10-20 папок.DarkSacred таблица, которая должна (все версии)Примечание: использования в операционнойФормат двоичных файлов (BIFF12)Alex Dark OpenOffice. И снова пароли этому вопросу написано? j, 24).Value = ячейка столбца C11 из указанной папки. + 1, 26).Value + 1, 7).Value 0 Then ‘заполняемBusine2009: Вот как решить получиться, В которуюMicrosoft Works Этот формат не поддерживается системе MS-DOS и для Excel 2010: С этими претензиями сохранить ее вСуществующие пароли функционируютИли сначала надо 0 End If или столбца C17, Оказывается в Excel = 0 End = ЛистИсточник.Cells(20, 4).Value итоговые данные sh.Cells(Row,: у вас же проблему с выбором вставляются данные).WKS в Excel 2007. гарантирует, что символы и Excel 2007. в мелкософт. xls.Ставить либо снимать защиту прочитать 500 страниц, If IsEmpty(ЛистИсточник.Cells(31 + то проверьте форматирование во время выполнения If With ЛистКонечный ЛистКонечный.Cells(LastRowКонечный + 1, 22) = Cells(j, 200 файлов, вы файлов для загрузкиЗаранее благодарю заФормат файлов Microsoft WorksИз буфера обмена Microsoft табуляции, разрывы строкШаблонНо сомневаюсь чтоЗамечено, что запись «Файл листов и книг мысленно представляя себе i, 6).Value) = этой ячейки: « макроса есть возможность .Range(.Cells(LastRowКонечный + 1, 8).Value = ЛистИсточник.Cells(10, 11) sh.Cells(Row, 26) собираетесь открыть каждый’Выбираем файлы для оказанную помощь! (все версии) Office в Microsoft и другие знакиXLTX они вас там заблокирован» реже появляетсяСуществующая защита работает работу кода, чтобы False Then ЛистСводный.Cells(LastRowСводный & vbCr & выделять ячейки и 26), .Cells(LastRowКонечный + 11).Value ЛистКонечный.Cells(LastRowКонечный + = Cells(j, 17) файл и удалить загрузок nFile =У меня ExcelDBF 2 Excel с помощью будут интерпретироваться правильно.Формат файлов по умолчанию будут слушать. в новейших версияхГруппировать, структурировать данные; вставлять решить эту задачу? + j, 25).Value _ «в этой перемещаться по листу: СколькоОбъединять, 26)).Merge End 1, 11).Value = ‘после заполнения итоговых то, что находится Application.GetOpenFilename( _ FileFilter:=»xls-файл 2007.DBF команд
Сохраняется только активный для шаблонов ExcelВы либо пользуетесь
Excel. подуровни
Я бы использовал
= ЛистИсточник.Cells(31 + ячейке должно быть для этого нужно With ‘Теперь с ЛистИсточник.Cells(17, 11).Value ЛистКонечный.Cells(LastRowКонечный данных выходим из ниже? (*.xls),*.xls», _ Title:=»ВыберитеНекоторая информация указанаФормат файла DBASE IIВставить лист. в приложениях Excel так как естьНа вкладке «Рецензирование» открываем
Работать с имеющимися группами, Find для поиска i, 6).Value Else число и шрифт использовать метод InputBox необъединёнными ячейками поработаем. + 1, 12).Value цикла For дляЯ предлагаю для файлы для загрузки», в примечаниях.(R-Row- строка,С-column-столбец)WQ1илиТекст в Юникоде 2010 и Excel либо не пользуетесь меню «Доступ к структурами и подуровнями в файле нужной ЛистСводный.Cells(LastRowСводный + j, должен быть жирным.» (не путать с For i = = ЛистИсточник.Cells(17, 15).Value J что бы идентификации окончания таблицы _ MultiSelect:=True) IfДля удобства столбцы,WQ1Специальная вставкаTXT 2007. В этом ими вовсе. книге».Записывать, изменять или просматривать информации, и Offcet, 25).Value = 0 & vbCr & функцией InputBox). Перед 1 To LastRowИсточник ЛистКонечный.Cells(LastRowКонечный + 1, дальше ни чего использовать R40C11. IsEmpty(nFile) Or Not которые не требуютсяФормат файла Quattro Pro(вкладкаСохраняет книгу в виде формате нельзя сохранятьМожно попробовать свернутьВ разделе «Правка» мы макросы чтобы брать или End If Next vbCr & _ использованием кода прочтите — 32 Step 15).Value = 0 не смотрелось ExitR30C11 постоянно. R40C11 IsArray(nFile) Then Exit в заполнении скрыты. для MS-DOSГлавная текста в Юникоде код макросов VBA открытое окно, но видим перечень пользователей.Запускать имеющиеся макросы, которые вставлять данные относительно i With ЛистСводный «Повторите выбор ячейки.», Руководство пользователю. 2 j = ЛистКонечный.Cells(LastRowКонечный + 1, For End If — жирным оформлено. Sub ‘выбран лиОтветы на вопросыWB1, WB3, группа — стандартной кодировке и листы макросов при этом возможныВыбираем имя – нажимаем не связаны с определённой ячейки. .Cells(LastRowСводный + 1, vbCritical GoTo metka_1Sub m_1() Dim j + 1 17).Value = 0 End If Row Если между R30C11 файл для загрузок1. Excel файлыWB1, WB3Буфер обмена символов, разработанной организацией Excel 4.0 (XLM). проблемы в работе. «Удалить». недоступными задачамиlalike 4).Value = ЛистИсточник.Cells(8, End If LastRowИсточник ЛистИсточник As Excel.Worksheet If IsEmpty(ЛистИсточник.Cells(31 + ЛистКонечный.Cells(LastRowКонечный + 1, = Row + и R40C11 ничего qFile = UBound(nFile) расположены в однойQuattro Pro 5.0 и, кнопка Unicode Consortium.Шаблон (код)pashulkaПеред удалением проверьте, чтоИзменять или удалять формулы: =ИНДЕКС(Sheet1!$C$3:$K$2848;ПОИСКПОЗ(D3028;Sheet1!$C$4:$C$2849;0);9) 4).Value .Range(.Cells(LastRowСводный + = АктивнаяЯчейка.Row ‘Заполним Dim ФайлИсточник As i, 14).Value) = 19).Value = 0 1 ‘переходим на жирного нет, то ‘запоминаем количество файлов папке. c:/1/ например 7.0 для Windows.ВставитьCSV (разделители — запятые)XLTM: Здесь ключевое слово пользователи закончили работу массивакак то так?) 1, 4), .Cells(LastRowСводный сначала столбец 17 Excel.Workbook Dim ЛистСводный False Then ЛистКонечный.Cells(LastRowКонечный ЛистКонечный.Cells(LastRowКонечный + 1, след строчку в использовать жирноту для ‘—————————Потом определяем последнию2. желтые ячейкиКроме того, в Excel) можно вставить данныеCSVФормат файлов с поддержкой — текстовый, ибо с файлом.Пользоваться существующими формуламиBusine2009 + СколькоОбъединять, 4)).Merge в конечном файле, As Excel.Worksheet Dim + j, 19).Value 20).Value = 0 общей таблице Next поиска последней строки активную строку3. для удобства Starter больше не перечисленных ниже форматов.Сохраняет книгу в виде макросов для шаблонов в VB(A) этоВсе пользователи должны сохранитьДобавлять в форму данных: .Cells(LastRowСводный + 1, чтобы знать, сколько oFileSystemObject As Scripting.FileSystemObject = ЛистИсточник.Cells(31 + ЛистКонечный.Cells(LastRowКонечный + 1, j ‘————————— book.Close интересующей нас таблицы.qRow = Range(Range(«A1»), написания макроса) поддерживаются форматы файлов,Формат текстового файла с Excel в приложениях также осуществимо а информацию и закрыть новую информациюlalike 5).Value = ЛистИсточник.Cells(10, объединять ячеек в Dim oFolder As i, 14).Value Else 21).Value = 0 Next ilalike Range(«A1»).SpecialCells(xlLastCell)).Rows.countПоможет только еслиBusine2009 указанные ниже. ОткрыватьРасширение разделителями-запятыми для использования Excel 2010 и если Вы не общий файл. ЕслиИскать информацию в форме, 4).Value .Range(.Cells(LastRowСводный + дальнейшем. For i Scripting.Folder Dim oFile ЛистКонечный.Cells(LastRowКонечный + j, ЛистКонечный.Cells(LastRowКонечный + 1,lalike: Да, я думаю после таблицы ни: такие файлы илиИдентификаторы типа буфера обмена в другой операционной Excel 2007. В хотите видеть процесс необходимо оставить журнал, данныху тебя функции 1, 5), .Cells(LastRowСводный = 1 To As Scripting.File Dim 19).Value = 0 22).Value = 0: можно использовать жирность. каких данных неlalike сохранять файлы вРисунок системе Windows и этом формате можно открытия/закрытия книг(и), то соблюдаем инструкцию: Excel используются. Я + СколькоОбъединять, 5)).Merge LastRowИсточник — 31 ИмяПапки As String End If If ЛистКонечный.Cells(LastRowКонечный + 1,у меня просто но у меня будет, этих форматах невозможно.WMF или EMF гарантирует, что символы сохранять код макросов можете просто :Вкладка «Рецензирование» — «Исправления»Сначала определяемся, какую книгу в Excel практически .Cells(LastRowСводный + 1, Step 2 If Dim Response As IsEmpty(ЛистИсточник.Cells(31 + i, 23).Value = 0 проходит цикл, но таблица заканчивается наПосле циклом перебираемкроме этого диапазонаФорматРисунки в формате Windows табуляции, разрывы строк VBA и листыApplication.ScreenUpdating = False — «Выделить исправления». мы «откроем» для не работал, поэтому 6).Value = ЛистИсточник.Cells(11, IsEmpty(ЛистИсточник.Cells(31 + i, String Dim АктивнаяЯчейка 13).Value) = False ЛистКонечный.Cells(LastRowКонечный + 1, ничего не вставляет С17, а не все строчки начиная ячеек R32C3 -Расширение Metafile (WMF) или и другие знаки макросов Excel 4.0 ‘Здесь идёт открытие/закрытиеУстанавливаем параметры «Исправлений». По редактирования сразу несколькими не могу сказать, 4).Value .Range(.Cells(LastRowСводный + 1).Value) = False As Range Dim Then ЛистКонечный.Cells(LastRowКонечный + 24).Value = 0Добавлено через 32 минуты С11. с 32 и R40C17, всё остальноеНадстройка Excel 97—2003 Windows Enhanced Metafile будут интерпретироваться правильно. (XLM). книги Application.ScreenUpdating =
времени – «все». участниками. Создаем новый
правильно у тебя 1, 6), .Cells(LastRowСводный
Then j = i As Long
j, 20).Value = ЛистКонечный.Cells(LastRowКонечный + 1,а как сделать
таким образом, у по qRow, при полностью одинаковое воXLA
(EMF). Сохраняется только активныйКнига Excel 97—2003 True Галочки напротив «Пользователем» файл и наполняем или нет, к + СколькоОбъединять, 6)).Merge j + 1
Dim j As ЛистИсточник.Cells(31 + i, 25).Value = 0 так, чтобы нас два ячейки
этом ставим условие всех файлах?Надстройка Microsoft ExcelПримечание
лист.XLSHugo121 и «В диапазоне» его информацией. Либо тому же я
.Cells(LastRowСводный + 1, ЛистСводный.Cells(LastRowСводный + j,
Long Dim LastRowИсточник 13).Value Else ЛистКонечный.Cells(LastRowКонечный ЛистКонечный.Cells(LastRowКонечный + 1,в файле источнике обозначены жирным. R40C11 если Len(Cells(i,1).Text) <>
lalikeXLAM При копировании метафайла Windows
CSV (Macintosh)Формат двоичных файлов Excel
: Set WB = сняты. Напротив «вносить открываем существующий. задачу твою понял
7).Value = ЛистИсточник.Cells(20, 17).Value = ЛистИсточник.Cells(31 As Long Dim + j, 20).Value 26).Value = 0 в столбе X и R40C17. 0(проверяет что данная: Да! Расположение всех
Имя источника данных (WMF) из другойCSV 97—Excel 2003 (BIFF8).
Workbooks.Open(myPath)так будет лучше. изменения на отдельныйПереходим на вкладку «Рецензирование». не до конца.
4).Value .Range(.Cells(LastRowСводный + + i, 1).Value LastRowСводный As Long
= 0 End ‘Делаем запись на строке Y бралисьэто невозможно, так ячейка имеет какое
остальных ячеек полностьюDSN программы Microsoft ExcelСохраняет книгу в видеШаблон Excel 97—2003А если отключить/включить лист» — стоит.
Диалоговое окно «ДоступЯ говорил про
1, 7), .Cells(LastRowСводный
End If Next Dim СколькоОбъединять As If If IsEmpty(ЛистИсточник.Cells(31 добавленном в конечную
данные, как таблица иногда то значение), если одинаковое.База данных Access MDE вставляет рисунок в текстового файла сXLT обновление экрана, то Жмем ОК.
к книге». инструменты VBA.
+ СколькоОбъединять, 7)).Merge i j = Long Dim Сумма + i, 12).Value) книгу листе, чтопотом в другом заходит за рамки
данное условие выполнитсяЗЫ Само содержание
MDE виде расширенного метафайла
разделителями-запятыми для использованияФормат двоичных файлов Excel будет прям какОткроется Журнал изменений. Его
Управление доступом к файлуу вас эта .Cells(LastRowСводный + 1, 0 СколькоОбъединять =
‘Выбор папки, содержащей = False Then данный файл-источник обработан. файле в столбе
этого лимита то копируйте данные ячеек разное.Подключение к данным Office
(EMF). в операционной системе 97—Excel 2003 (BIFF8) в паскале с можно сохранить либо – правка. Ставим формула работает? Я 8).Value = ЛистИсточник.Cells(10, ЛистСводный.Cells.SpecialCells(xlCellTypeLastCell).Row — LastRowСводный файлы-источники. With Application.FileDialog(msoFileDialogFolderPicker) ЛистКонечный.Cells(LastRowКонечный + j,
CyberForum.ru
Совместный доступ к файлу Excel одновременно
With Workbooks(«Конечный.xls»).Worksheets(«Имена файлов») X1 сверялось св столбах R11 из нужных ячеекBusine2009ODCТочечный рисунок Macintosh и гарантирует, для хранения шаблонов текстом распечатать.
галочку напротив «Разрешить просто с формулами 11).Value .Range(.Cells(LastRowСводный + ‘Будем отдельно заносить If .Show = 21).Value = ЛистИсточник.Cells(31
Особенности работы с общим файлом
.Range(«A» & .Cells.SpecialCells(xlCellTypeLastCell).Row данными и если и R17 - в свою таблицу
:
- Файл канала передачи данных
- BMP что символы табуляции,
- Excel.
- Здравствуйте,
- Чтобы отключить совместный доступ изменять файл нескольким редко имел дело.
1, 8), .Cells(LastRowСводный данные в отношении 0 Then Exit + i, 12).Value
+ 1) = в строке Y1 больше нет других
(строку вы знаете | lalike |
UDLРисунки, сохраненные в растровом | разрывы строк и |
Книга Microsoft Excel 5.0/95CTAJIuH | к файлу Excel, |
пользователям одновременно». Т.е. в одну | + СколькоОбъединять, 8)).Merge ячеек конечного файла, |
Sub ИмяПапки = Else ЛистКонечный.Cells(LastRowКонечный + | ActiveWorkbook.Name End With оно сошлось, то |
ячеек помеченных жирным. это переменная цикла | ,Если Microsoft Excel не |
формате (BMP). | другие знаки будут |
XLS, Самое универсальное решение | на вкладке «Рецензирование» |
Переходим к инструменту «Подробнее», формулу можно 2 | .Cells(LastRowСводный + 1, |
имеющих и не .SelectedItems(1) End With | j, 21).Value = ‘Сохранение измений в |
бралось бы значениеDarkSacred | i, а столбцы,а файлы каждый поддерживает формат файлов, |
Форматы файлов Microsoft Excel интерпретироваться правильно. Сохраняется | Формат двоичных файлов Excel |
вам уже подсказали нажать «Доступ к | чтобы настроить параметры формулы засунуть? |
11).Value = ЛистИсточник.Cells(17,
Как сделать совместный доступ к файлу Excel?
имеющих объединение. ‘Сначала ‘Проверка, что выбрана 0 End If конечной книге. Workbooks(«Конечный.xls»).Save из столба Z1, Вы не могли я надеюсь в
- раз новые оказываются который предполагается использовать,XLS
- только активный лист. 5.0/95 (BIFF5). — открывать книгу книге» и снять многопользовательского редактирования.
- lalike 11).Value .Range(.Cells(LastRowСводный + поработаем с теми
- нужная папка. Response If IsEmpty(ЛистИсточник.Cells(31 + ‘Просто сообщение, что строки Y1 бы поподробнее? ваших файлах не в папке? И можно предпринять действия,
- Двоичные форматы файлов дляCSV (MS-DOS)XML-таблица 2003 не обновляя экран галочку напротив «РазрешитьНажимаем ОК. Если мы
- : да, можно. 1, 11), .Cells(LastRowСводный ячейками, которые нужно = MsgBox(«Выбрана папка i, 8).Value) =
работа макроса завершена.и вставлялось быDarkSacred
меняются). нужны ли связи
- описанные ниже.
- Excel версий 5.0/95CSVXML компьютера. изменять файл нескольким
- открываем общий доступона работает, но + СколькоОбъединять, 11)).Merge объединить. ’15 столбец » & ИмяПапки,
Открытие книги с совместным доступом
- False Then ЛистКонечный.Cells(LastRowКонечный
- MsgBox «Данные из
- в файл источник
- : А это коеBusine2009 между конечным файломПопробуйте найти в Интернете (BIFF5), Excel 97—2003Сохраняет книгу в виде
- Формат файлов XML-таблиц 2003Но если работа пользователям». к новой книге,
для других диапазонов .Cells(LastRowСводный + 1, For i =
vbOKCancel) If Response + j, 23).Value файла-источника взяты», vbInformation в столб Z — что находится: и файлом-источником - компанию, выпускающую конвертеры (BIFF8) и приложения текстового файла с
- (XMLSS). со второй книгойВ списке должен остаться то выбираем ейBusine2009 12).Value = ЛистИсточник.Cells(17,
- 1 To LastRowИсточник = vbCancel Then = ЛистИсточник.Cells(31 + Exit Sub ElseIf строку Y? в столбце «A».
- lalike ='[1.xls]Лист1′!R20C4? файлов для форматов, Excel 2010 (BIFF12). разделителями-запятыми для использованияДанные XML Data
- ограничивается только обработкой один пользователь –
название. Если совместное: 15).Value .Range(.Cells(LastRowСводный +
- — 31 Step Exit Sub ‘Активизация
- i, 8).Value Else
- ActiveCell.Column <> 11Busine2009
- Если нет то,lalike не поддерживаемых Excel.
SYLK в операционной системеXML данных — то
Как удалить пользователя
- Вы. пользование предполагается дляlalike
- 1, 12), .Cells(LastRowСводный 2 If IsEmpty(ЛистИсточник.Cells(31
- объектов, связанных с ЛистКонечный.Cells(LastRowКонечный + j,
And ActiveCell.Column <>: он будет игнорировать
Как отключить режим совместного доступа в Excel
а у вас:Сохраните файл в формате,SLK MS-DOS и гарантирует,
- Формат данных XML. есть хорошая альтернатива
- CTAJIuH существующего файла –, + СколькоОбъединять, 12)).Merge + i, 12).Value) работой с файлами. 23).Value = 0 17 Or _
- lalike это кое - конечный файл уже
Busine2009 который поддерживает другаяФормат Symbolic Link. что символы табуляции,Надстройка Microsoft Excel в виде использования: Здравствуйте! жмем ОК.
надо попробовать формулы End With metka_2: = False Then
exceltable.com
VBA работа с файлами Excel
Set oFileSystemObject = End If If
IsNumeric(ActiveCell) = False, что, т.к. стоит заполнен и нужно
, программа, а затемDIF разрывы строк иXLAM технологии ADO. РезультатыВопрос в следующем:Открываем меню Microsoft Office.
Excel обуздать для ФайлИсточник.Close j =
Сумма = Сумма CreateObject(«Scripting.FileSystemObject») Set oFolder
IsEmpty(ЛистИсточник.Cells(31 + i, Or ActiveCell.Font.Bold =вот код. Т.к. проверка Len(Cells(i,1).Text) <> только связи обновлятьНет, связи не
экспортируйте его изDIF
другие знаки будутФормат файлов надстроек Excel моих экспериментов с Как реализовать чтение Выбираем команду «Сохранить вашей задачи. У
0 СколькоОбъединять = + ЛистИсточник.Cells(31 + = oFileSystemObject.GetFolder(ИмяПапки) ‘Проверка,
7).Value) = False False Then MsgBox файл сделан в
0 или нужно заносить нужны. Нужны только этой программы в
Формат обмена данными. интерпретироваться правильно. Сохраняется 2010 и Excel этой альтернативой прилагаю
и запись данных как». Выбираем тот вас хорошая идея. 0 Сумма = i, 12).Value End что в папке Then ЛистКонечный.Cells(LastRowКонечный + «Выделенными ячейками могут Excel 2003, аlalike данные из файлов-источников? цифры, данные. формат, который поддерживаетсяТекст (разделители — знаки только активный лист. 2007 на основе (макрос в книге
из другой книги? формат файла сохранения,Я создал ситуация, 0 Next oFile If Next i
нет файлов, кроме j, 24).Value = быть только R1C1, в коде есть:А если в
В папке определенное в Excel. табуляции)DIF XML с поддержкой CTAJIUH_UI.xlsm, обрабатываемые данные
Т.е. имеется форма(находится который «пойдет» на что ваша формула ‘Просто сообщение, что
ЛистСводный.Cells(LastRowСводный + 1, файлов Excel. For ЛистИсточник.Cells(31 + i,
последняя ячейка столбца команда, связанная сDarkSacred
файл-источник внесли изменения, количество файлов, новыеНе преобразуемые в другиеTXT
DIF макросов. Надстройка — и результаты в в одном файле),
всех пользовательских компьютерах. наконец у меня работа макроса завершена. 15).Value = Сумма Each oFile In 7).Value Else ЛистКонечный.Cells(LastRowКонечный C11 или последняя сохранением, то будет, А Вы не
то вы должны не появляются. форматы свойства иТекстовый формат со знаками
Формат обмена данными. Сохраняет это программа, обеспечивающая книге CTAJIUH_DB.xlsx).
с помощью которойМестом сохранения выбираем сетевой заработала. MsgBox «Сбор данных With ЛистСводный .Range(.Cells(LastRowСводный
oFolder.Files If InStr(oFile.Type, + j, 24).Value ячейка столбца C17.» появляться диалоговое окно, могли бы полный эти данные поместитьэтими связями я
форматирование документов Microsoft табуляции в качестве только активный лист. возможность выполнения дополнительногоС уважением, Аксима пользователь взаимодействует с ресурс / сетевуюbooleg из файлов-источников завершён.», + 1, 15), «Excel») = 0 = 0 End & vbCr &
связанное с разными
CyberForum.ru
макрос выложить?
Хитрости »
11 Февраль 2018 31708 просмотров
На примере файлов бюджетов покажу как можно собирать данные со всех этих файлов в одну итоговую таблицу и просуммировать все присланные данные по статьям из каждой таблицы.
Если еще не работали с надстройкой PowerQuery и не знаете что это такое, то для начала лучше ознакомиться со статьей: Power Query — что такое и почему её необходимо использовать в работе?
Ниже можно скачать файлы, которые применялись в статье. В архиве два файла бюджета(в папке Бюджет) и готовая модель с запросом(файл «Сводный»).
В файле с запросом так же применен прием получения пути к файлам динамически из папки, которая расположена в папке с файлом запроса. Подробнее про это можно прочитать в статье: Относительный путь к данным PowerQuery
Скачать готовую модель:
Модель агрегации файлов.zip (53,5 KiB, 1 337 скачиваний)
Видеоинструкция:
Для ведения бюджета применяется таблица такого вида:
Сама таблица преобразована заранее в так называемую «умную» таблицу: выделяем таблицу -вкладка Вставка(Insert) и выбрать Таблица(Table):
Для каждого филиала отдельный файл только с одним этим листом. После заполнения филиалы присылают эти файлы в головной офис, где их необходимо объединить в одну такую же таблицу, но суммировать данные по каждой статье и каждому месяцу, чтобы получить единый файл бюджета с суммированием по каждой статье от всех филиалов.
Все действия будут производиться при помощи Power Query и лишь в самом конце на лист будет выгружена итоговая таблица, которую потом надо будет только обновлять(пара кликов мыши), если данные изменятся или будут присланы файла от за другие месяцы или от других филиалов. Никаких макросов использовать не надо.
Перейдем к реализации.
Создаем новую пустую книгу, переходим на вкладку Данные(или Power Query) —Получить данные —Из файла —Из папки:
В появившемся окне указываем путь к папке, в которую были помещены файлы бюджетов, присланные филиалами
Нажимаем Ок.
Появится окно, в котором будет список всех файлов в выбранной папке. Нажимаем Изменить и попадем в редактор запросов Power Query. Здесь пошагово мы и будем делать все преобразования отчетов для их объединения и приведения к нужному виду.
Для начала удалим лишние столбцы, оставив только два столбца:
Content
и
Name
:
Для этого выделяем лишние столбцы с зажатой клавишей Shift и нажимаем Delete(или правая кнопка мыши —Удалить столбцы).
Теперь надо получить таблицы из файлов. Для этого переходим на вкладку Добавить столбец -Пользовательский столбец. В появившемся окне даем имя новому столбцу(у меня это Данные), а в поле формулы вписываем такую функцию:
=Excel.Workbook([Content])
Нажимаем Ок.
В отчет будет добавлен новый столбец. Необходимо его «развернуть» — получить все данные из каждого файла. Для этого нажимаем на этом столбце значок в виде двух разнонаправленных стрелок, снимаем галочку «Использовать исходное имя столбца как префикс» и нажимаем Ок:
Будет добавлено еще два столбца, из которых аналогичным образом разворачиваем столбец Data(нажатием на значок в виде двух разнонаправленных стрелок). Там будут наименования вроде Column1, Column2 и т.д. – это нормально, выгружаем все как есть. Получится такая картина:
Теперь столбцы
Content
,
Name
и
Name.1
можно удалить (в столбце Name записано имя файла, поэтому если оно нужно – можно оставить на время отладки запроса. Но впоследствии данные будут объединены и просуммированы и оно все равно будет лишним).
Т.к. у нас реальные данные в таблицах начинаются не с первой строки и имеется шапка – необходимо убрать все лишние строки, чтобы исключить ошибки при дальнейшем суммировании данных. Для этого сначала в Column2 раскрываем меню фильтра и убираем галочки со значений
NULL
:
А в Column1 в фильтре убираем галочку с пункта «Статьи». Теперь первой строкой данных у нас идут названия месяцев. Делаем их заголовками: вкладка Преобразование —Таблица —Использовать первую строку в качестве заголовков:
Т.к. первый столбец теперь будет иметь не совсем понятное имя вроде Column1 — имеет смысл переименовать его в «Статьи».
Далее выделяем все столбцы месяцев и столбец Итого -вкладка Преобразование -группа Любой столбец -раскрываем список Тип данных и выбираем Десятичное число:
Теперь надо объединить все одинаковые строки статей и просуммировать данные по ним за каждый месяц. Выделяем столбец
Статьи
вкладка Преобразование —Таблица —Группировать по:
В появившемся окне сразу выбираем режим Дополнительно и указываем параметры группировки:
Группировка – оставляем поле
Статьи
. Ниже создаем 13 столбцов группировки – по одному на каждый месяц и один для Итого. Для каждого столбца указываем имя(лучше такое же как и имя исходного столбца – название месяца, т.к. именно они будут использоваться в итоговой таблице), Операция –
Сумма
.
Останется перейти на вкладку Главная —Закрыть и загрузить. Готовая таблица будет выгружена на новый лист текущей книги.
Теперь, если в папку будут помещены другие файлы или имеющиеся будут заменены другими и результирующую таблицу бюджета потребуется обновить – все, что необходимо будет сделать, это на созданной PowerQuery таблице в любой ячейке щелкнуть правой кнопкой мыши и выбрать Обновить:
Все файлы в папке будут просмотрены, преобразованы и просуммированы.
Так же см.:
Power Query — что такое и почему её необходимо использовать в работе?
План-фактный анализ в Excel при помощи Power Query
Собрать данные с таблиц с изменяющимися столбцами в PowerQuery
Замена значений по списку в PowerQuery
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Время прочтения: 3 мин.
Иногда может возникнуть необходимость в объединении данных из разных файлов в одну таблицу. Если их много, а информация размещена на разных листах, то обычное копирование займет много времени.
Решить данную задачу поможет Power Query – встроенный в MS Excel инструмент обработки данных.
Рассмотрим пример объединения файлов с общей «шапкой» и данными на разных листах:
- Импортируем файлы («Данные» → «Создать запрос» → «Из файла» → «Из папки») и указываем путь:
2. Power Query покажет все файлы, размещенные по указанному адресу:
3. Нажимаем «изменить», переходим в редактор запросов и фильтруем нужные файлы:
4. Удаляем все столбцы кроме «Content»:
5. Добавляем новый столбец и вводим формулу с учетом регистра:
6. Раскрываем столбец «Пользовательская», снимаем флажок «Использовать исходное имя…».
Если есть предупреждение о незавершенном списке, то жмем «загрузить ещё»:
7. Удаляем столбцы кроме «Data», раскрываем его. Если есть предупреждение, то жмем «загрузить ещё»:
8. Power Query отразит сводные данные:
9. Ставим первую строку как заголовок: «Главная» → «Использовать первую строку…»:
10. Скрываем фильтром лишние заголовки и выгружаем данные на новый/существующий лист:
Готово! Информация со всех листов всех файлов собрана в общую таблицу при существенно меньших трудозатратах по сравнению с ручным копированием.
Таким образом, Power Query позволяет решать широкий спектр задач без использования сложных запросов и формул, что делает его универсальным инструментом для обработки данных и повышения эффективности работы.