Страницы: 1
RSS
Сформировать итоговую таблицу (в отдельном файле) по данным из отдельных листов одной книги
 
Есть исходный файл (Список_общий) в нём есть несколько листов (в данном примере их 3, но обычно их в разы больше и количество фиксировано). В нём на отдельных листах есть общий список продуктов.

Необходимо сформировать итоговую Таблицу, по данным из отдельных листов (файла: Список_общий), как сейчас сформировано в файлах (Овощи, Фрукты, Ягоды).
Т.е. сформировать Таблицу с выбором сначала по Группе и затем по Подгруппе, с данными из  (файла: Список_общий).

Количество групп - фиксировано
Количество подгрупп - фиксировано

Например:
Файл: Ягоды
Формируется таблица с выбором из исходного файла (Список_общий) по группе: Ягода, а потом по подгруппам: Ягода обыкновенная, Ягода особая и т.д.
Желательно чтобы это было в виде кнопки (если такое реализуется в виде макроса) или хитрой формулой, но в файле с именем группы. (Например: Ягоды)
САМОЕ ОСНОВНОЕ!
В файле (Список_общий) данные меняются. Т.е. иногда добавляют строки с новыми данными.
ВСЯ СУТЬ ДАННОЙ ПРОСЬБЫ: КАК РАЗ ЧТОБЫ ЗАНОВО НЕ ФОРМИРОВАТЬ ВРУЧНУЮ СПИСКИ ПО ГРУППАМ И ПОДГРУППАМ ПРИ ИЗМЕНЕНИИ ИЛИ ДОБАВЛЕНИИ ДАННЫХ В ИСХОДНУЮ ТАБЛИЦУ!!!
 
Так не подойдет? Вариант сводной таблицы и вариант занесения группы ручками в ячейку
Файл должен находится в папке C:\1\
Неизлечимых болезней нет, есть неизлечимые люди.
 
К сожелению нет возможности скопировать целиком список со всех листов в один!
Интересует именно возможность выбора!
Хотя как направление поиска интересное.
 
Ничего копировать не придется. Правой кнопкой мыши на таблице- Обновить.
Изменено: TheBestOfTheBest - 10.04.2015 12:38:36
Неизлечимых болезней нет, есть неизлечимые люди.
 
Как такую структуру сформировать из файла со списком (Список_общий)?
Я просто не понял сначала что и как!
 
Теперь я не понял вопроса, сто значить "Как такую структуру сформировать из файла со списком (Список_общий)?" ?

Для вас так "Правой кнопкой мыши на таблице- Обновить." Структура готова.
Неизлечимых болезней нет, есть неизлечимые люди.
 
Мне надо новый файл сделать в Экзеле!
Поэтому я и хотел у Вас узнать как вы на листе сделали запрос на тот файл?
 
Создал подключение к внешнему источнику, дописал SQL текст.
Чтобы подключиться к другому файлу: Параметры-Источник данных-Свойства подключения - вкладка Определение, поле Строка подключения, параметр DBQ=...
Неизлечимых болезней нет, есть неизлечимые люди.
 
А можно ли что-то подобное реализовать с формулами или с макросом?
 
Цитата
TheBestOfTheBest написал: вариант занесения группы ручками в ячейку
реализованный макросом по файлу поста№2 - как-то так, видимо - переводом на vba ...
(проверила - выгрузил [сформировав новый лист] - как на листе1 файла поста№2 - ячейка А1 - условие)

Скрытый текст

что самое интересное - 1 параметр надо задавать 3 раза (в цикле) - т к он используется для 3х листов в конструкции UNION...
SQL-запрос использован из поста№2 - как его прочитал макрорекодер - короче написать не получилось
p.s. Путь к текущему файлу прописать по макросу или такой путь поставить к файлу:
ThisWorkbook.Path & "\Список_общий TheBest.xlsm" (слэш и своё имя файла)
Изменено: JeyCi - 13.04.2015 21:20:45
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
TheBestOfTheBest написал: Вариант сводной таблицы
Сводная таблица из нескольких листов -  макросом...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
TheBestOfTheBest написал: FROM `Список_2$` `Список$`"
1) по поводу самого запроса всё-таки вопрос остался - такой синтаксис сработал, НО откуда SQL понял, что это за Список?? - что-то не могу найти ни имя в именованных диапазонах ни чего другого...
2)можно ли для решения данной задачи использовать JOIN?.. или JOIN это всё-таки скорее присоединение столбцов, в то время как UNION - когда надо выложить строки друг за другом из разных запросов... верно ли поняла... даже если по одному столбцу отбор?..
3) может всё-таки JOIN можно найти для данной задачи??... - чтобы зацикливать Параметр не надо было в макросе выше...
-----------------------------------
3 вопроса до сих пор мучают...  
Изменено: JeyCi - 13.04.2015 19:15:03
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
1) это имя системной переменной - название листа, второй "список" это псевдоним , т.е. строго говоря `Список_2$` As `Список$`
2) зачем? тем более у нас задача с полным пересечение множеств, а JOIN из query такое не поддерживает
3) чтобы не зацикливать, уберите его из макроса, сцепляйте значение ячейки со значением фильтра.
Неизлечимых болезней нет, есть неизлечимые люди.
 
Цитата
TheBestOfTheBest написал: 1) - название листа, второй "список" это псевдоним , т.е. строго говоря `Список_2$` As `Список$`
теперь хоть знаю как выглядит псевдоним... спасибо!.. вариант запроса в коде всё равно длинноватый получается - [№п/п] читает только если его разорвать (думаю, что из-за Chr(10) в оригинале)
Код
.CommandText = Array("SELECT Группа, Подгруппа, [№", _
        "_п/п], Наименование, Цвет, Форма, Партия" & _
        " FROM [Список$] AS [Список$]" & _
        " WHERE Группа=?" _
        & " UNION SELECT Группа, Подгруппа, [№", _
        "_п/п], Наименование, Цвет, Форма, Партия" & _
        " FROM [Список_1$] AS [Список$]" & _
        " WHERE Группа=?" _
        & " UNION SELECT Группа, Подгруппа, [№", _
        "_п/п], Наименование, Цвет, Форма, Партия" & _
        " FROM [Список_2$] AS [Список$]" & _
        " WHERE Группа=?")


Цитата
TheBestOfTheBest написал: 3) чтобы не зацикливать, уберите его из макроса, сцепляйте значение ячейки со значением фильтра.
да, конечно, можно цеплять и в макросе - но тогда и макросом обновлять нужно будет, скорее всего... а так, в принципе, по идее от Андрей VG можно настроить запрос данным макросом(адаптированным) - и потом обновлять всё той же кнопкой Обновить (видимо, при изменениях в исходниках), а при изменениях А1 и так работает само :) ... даже, наверно, можно повесить выпадающий список на ячейку А1 - но это уже др история...
Скрытый текст

P.S. хотя да - просто фильтром тоже вариант, если убрать условие из запроса
Изменено: JeyCi - 22.04.2015 16:17:30
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Код
... Join(Arr, ";")
Неизлечимых болезней нет, есть неизлечимые люди.
 
См. вариант - макрос.
Страницы: 1
Наверх