Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Объединение нескольких таблиц в одну, Необходимо объединить несколько разных таблиц на разных листах, без макросов, не свобдная таблица
 
Всем привет!

Есть такая задача - объединить несколько похожих таблиц с разных листов в одной таблице на отдельном листе
(пример - во вложении)

То есть, нужно просто добавить все данные с таблиц Base1 и Base2 в таблицу Total, но есть несколько "но":
1. без макросов (да, на форумах есть вариант реализации подобной задачи с макросами, но макросы использовать нельзя);
2. не сводная таблица;
3. столбцы в таблицах могут отличаться (в Base2 на один столбец больше, а данные сдвигаются, соответственно, нужно ориентироваться по названиям столбцов)
4. количество страниц большое и количество строк в таблицах может постоянно меняться

Буду благодарен за помощь, если нужны еще данные, подскажу, что нужно.
Изменено: Igorkvg - 27 Фев 2017 13:55:21
 
MSQuery
Код
Select * from Base1
Union all
Select * from Base2
Union all
Select * from Base3
....
Select * from Base N

но надо с количеством столбцов в разных таблицах разобраться.
Изменено: БМВ - 28 Фев 2017 03:01:10
 
Цитата
Igorkvg написал: Есть такая задача... 1. без макросов... 2. не сводная таблица...
И все за вас с "0"? На сайте есть раздел "Работа" - заказы размещают/принимают в нем... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Цитата
Z написал: И все за вас с "0"?
Нет, ну зачем с "0"? :)

Можно сделать так, как во вложении (обновлен вариант), но при увеличении количества страниц получается сказочный гемморой... :(
Предполагаю, что есть решение проще, но "не доходит" :(
Изменено: Igorkvg - 28 Фев 2017 03:01:22
 
Ну есть один метод, PowerQuery завется
Код
let
    Source = Excel.Workbook(File.Contents("C:\temp\Copy of Trucks_2.xlsx"), null, true),
    Base1_Table = Source{[Item="Base1",Kind="Table"]}[Data],
    Base2_Table = Source{[Item="Base2",Kind="Table"]}[Data],
    #"Appended Query" = Table.Combine({Base1, Base2})
in
    #"Appended Query"
Изменено: БМВ - 27 Фев 2017 17:16:09
 
БМВ,
Спасибо, большое, но, боюсь не подойдет: как я понимаю, PowerQuery работает только там, где установлен, а с файлом будут работать разные люди в разных местах...

По сути, здесь нужна формула, которая позволит брать данные из одного столбца разных листов и размещать последовательно на другом листе.
 
Цитата
Igorkvg написал:
нужна формула, которая позволит брать данные из одного столбца разных листов и размещать последовательно на другом листе
А перед ней нужна формула, окторая с разных листов собирает нименования столбцов.
А также где-тозаполняется таблица с данными какие есть листы и сколько на них строк данных .....
А также ....

Цитата
Igorkvg написал:
PowerQuery работает только там, где установлен
Да это так, в 2016  вошел в состав офиса.

при ограничениях что вы указали в первом посте, боюсь что даже если реализовать, то это не упростит работу.
 
Обновил файл, получается то, что я хотел, но слишком нагруженно... может можно как-то оптимизировать?
 
тут MS Query предлагал, но автономно при добавлении листов оно работать не будет. Надо править. Хотя  добавить две строки или убрать.
Код
SELECT  * FROM `'Base 1$'`
union all
SELECT  * FROM `'Base 2$'`
union all
SELECT  * FROM `'Base 3$'`
union all
SELECT  * FROM `'Base 4$'`
union all
SELECT  * FROM `'Base 5$'`
 
если без макросов и сводных, то может такой примитив подойдет с использованием доплиста, хотя вряд ли
 
БМВ, спасибо за помощь!

Vik_tor, спасибо, такой вариант не подошел, но он натолкнул меня на другое решение.
В любом случае, всем спасибо, вопрос решен :)
Страницы: 1
Читают тему (гостей: 1)