Страницы: 1
RSS
Сбор данных с листов по критерия, консолидация данных по названию столбцов
 
Доброго времени суток!
сделал сводную табличку лист Summary. в шапке заранее прописал критерии, имена столбцов с других таблиц которые бы я хотел видеть в одном листе. так как расположение нужных мне столбцов в листах (их у меня 17) разное, пользовался формулой ВПР(vlookup), ДВССЫЛ(indirect) и ПОИСКПОЗ(match)
вроде все получилось, но почему-то есть ошибки, выделил их красным. если без использования ДВССЫЛ и вручную указать для формулы ВПР что искать - то выводит нужное значение..
в связи с этим помогите решить несколько вопросов:
1. автоматическое копирование информации SITE ID со всех листов и вставкой друг за другом в вертикальном порядке в Лист Summary и добавлением имени листа, с которого SITE ID было скопировано.
в ручном режиме делается, но если каждый день будут какие-то изменения, то не хотелось бы эту процедуру повторять
2. почему по некоторым SITE ID выводиться #Н/Д?
3. возможно ли обойтись без формул и сделать это все с помощью макроса? Который бы делал сводный отчетик если в листе Summary в первой строке (шапке) прописать заранее имена нужных столбцов из которых нужно получить данные (количество столбиков в шапке может меняться). в макросах ничего не понимаю (((
файлик прилагаю
спасибо за ответы заранее
Изменено: sanych09 - 17.08.2015 06:50:33
Опыт и практика - великое дело! Век живи, Век учись!
 
sanych09, здравия. Макросом можно сделать почти всё, в том числе Вашу задачу. Изучите имеющиеся на форуме примеры, в частности, код в них, попробуйте самостоятельно что-то сделать, а что не понятно - спрашивайте на форуме.
Цитата
sanych09 написал: в макросах ничего не понимаю
или не хотите понимать? (для таких случаев есть ветка "работа")

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
код (в файле вложенном) на словаре - CreateObject("Scripting.Dictionary") -
Цитата
JayBhagavan написал: Изучите имеющиеся на форуме примеры
JayBhagavan плохих советов не даёт!...
p.s.
по файлу вложенному - условия важные (у вас не уточняла, вы не сказали, но тем не менее):
- строки должны быть уникальные
- столбцы должны быть уникальные
- поубирайте все фильтры со всех листов до запуска макроса (на всякий случай!!)
- форматы дат ячеек приводите сами в порядок...
- кнопка синяя "start"
- и ещё
Цитата
sanych09 написал: прописать заранее имена нужных столбцов из которых нужно получить данные (количество столбиков в шапке может меняться).
p.p.s. (сделала, как поняла с ваших слов, - не проверяла) комментарии по коду...
изучайте, переделывайте  8) если что ещё или что не так ... успехов  
Изменено: JeyCi - 17.08.2015 08:47:59
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:  поубирайте все фильтры со всех листов до запуска макроса (на всякий случай!!)
Это надёжнее макросом в начале работы с листом и сделать.
А т.к. он работает шустро, и чтоб случайно не забыть
Цитата
sanych09 написал:  но если каждый день будут какие-то изменения
то думаю кнопку нужно убрать, а выполнять макрос по событию активации этого сводного листа.
 
Цитата
Hugo написал: то думаю кнопку нужно убрать, а выполнять макрос по событию активации этого сводного листа.
можно всё... но дальше лучше без меня  :) ...  по поводу
Цитата
но если каждый день будут какие-то изменения
(количество столбиков в шапке может меняться).
- поняла, что изменяться может шапка... под любое количество задаваемых столбцов в шапке,
соответственно ключ - первые 3 столбца - SITE ID, Project (имя листа), Vendor...
Изменено: JeyCi - 16.08.2015 23:11:15
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
sanych09 только один совет вам: поубирайте пустые строки в своём стартовом сообщении! (кнопка Изменить под вашим постом)... а то мой макрос перестанет работать  ;) - когда заглянут модераторы на ветку (правила оформления постов строги, как и в коде любого макроса, - если хотите научиться)
Цитата
sanych09 написал:  в макросах ничего не понимаю (((
Изменено: JeyCi - 17.08.2015 00:00:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Спасибо всем большое за ответы
Цитата
JeyCi написал:
- поняла, что изменяться может шапка... под любое количество задаваемых столбцов в шапке,
Совершенно верно, может меняться шапка.
Самостоятельно у меня получилось сделать формулами... не задавал бы вопрос, если бы не получил по некоторым SITE ID значения #Н/Д.
JeyCi, отдельное спасибо за файл с макросом, буду смотреть код, может разберусь
Опыт и практика - великое дело! Век живи, Век учись!
 
обозначила Dim. внесла пару штрихов в комменты кода, файл перевложила в пост выше... (вчера делала, чтобы работал, сегодня - поправила "орфографию и грамматику" - чтобы код был более "стройный" и понятный)...
Изменено: JeyCi - 17.08.2015 08:53:31
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
- поняла, что изменяться может шапка... под любое количество задаваемых столбцов в шапке,
соответственно ключ - первые 3 столбца - SITE ID, Project (имя листа), Vendor..
проверил Ваш макрос, все работает. но работает если SITE ID - первый столбец во всех листах, и Vendor - всегда 2-й. а у меня ключ - первые 2 столбца: Столбец Site ID всегда идет первым, и имя листа Project,  а остальные столбцы, Vendor, MS 1 ... и т.д в разных листах могут быть на разных позициях (например, Vendor на первом листе может быть в 5 столбике, а во втором листе - на 7-м)
пытаюсь разобраться в макросе, написанном Вами, чтобы обозначить как "ключ" только первые два столбика  Site ID  и Project(он же имя листа) и все безуспешно((
не подскажете где нужно сделать изменения?
спасибо
Опыт и практика - великое дело! Век живи, Век учись!
 
изменения
знаком '>>>>>>>>>>>>>>>>>>>!!!!!!!!!! пометила внесённые изменения - различие:
1) откуда начинаем собирать вариабельную шапку
2) с какого столбца просматриваем на сходство столбцов шапки др листов с нужными столбцами
3) что задаём в ключ, остальное в значение по ключу
4) выгрузка (в двух строках кода подряд)
Объект Dictionary - для инфо по словарям...
p.s.
в следующий раз:
1) см Правила форума п.2.3. файл(ы) с примером в реальной структуре
2) показывайте как пробовали, чтобы можно было понять, что не получается
3) ТЗ формулируйте полностью и дословно
Цитата
sanych09 написал: отчетик если в листе Summary в первой строке (шапке) прописать заранее имена нужных столбцов
- сразу бы указали с какого по какой столбец в примере значения вариабельные... а так, пришлось сопоставлять на глаз - где вы там и что можете дописывать руками (с точки зрения теории вероятности)...
Изменено: JeyCi - 18.08.2015 20:44:34
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, спасибо Вам большое!!!!
хотел еще уточнить, ключи для шапки должны быть записаны строго по порядку как во всех остальных листах? или без разницы, цикл перебирает\ищет совпадение по ключу во всех листах и если не находит совпадения - то просто выводит пустые ячейки
Опыт и практика - великое дело! Век живи, Век учись!
 
Цитата
sanych09 написал: ключи для шапки должны быть записаны строго по порядку как во всех остальных листах? или без разницы, цикл перебирает\ищет совпадение по ключу во всех листах и если не находит совпадения -
1) нет - на любых листах по-любому - сверка не по порядку, а по значению ключа (он у вас по сути составной, т е  "слово|слово" - есть один ключ ) -  и листы у вас ДАЖЕ не сравниваются, а просто заносятся ключи друг за другом (как есть в ячейках), т к у вас в значение ключа входит И название листа - соответственно на разных листах ! не может быть ! одинаковых ключей, только если есть дубли строк на листе (как указывала: данный макрос для случаев, когда строки уникальны в рамках листа)... иначе надо делать др макрос под др задачу...

Цитата
sanych09 написал: информации SITE ID со всех листов и вставкой друг за другом в вертикальном порядке
- вам ведь надо было свести листы в отчёт друг за другом! - что и реализовано...

Цитата
sanych09 написал: и если не находит совпадения - то просто выводит пустые ячейки
2) если ключ формируется - а он формируется - (по значению 1-го столбца ! на листе ! и названию листа)... - и при этом у вас там (в таблице) пустые значения... то Item (значение к этому ключу) - задаётся, как есть, пустым...
Изменено: JeyCi - 18.08.2015 20:38:16
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Спасибо за полный ответ. все что хотел Вы объяснили.
я вот сейчас попробовал изменить на листе PH1_Colocation_DPR название нужного мне для вывода в Summary ключа "MS 11.2 TI Started Actual" на "add_MS 11.2 TI Started Actual" как пример, и все равно получаю какие-то данные. после детальной проверки увидел, что данные в Summary по ключу "MS 11.2 TI Started Actual" копируются из соседнего ключа "MS 11.8 Site On-Air Actual". или для макроса есть обязательным условием, чтобы имя в шапке было во всех листах, иначе получится сбой?
спасибо заранее.  
Опыт и практика - великое дело! Век живи, Век учись!
 
Цитата
sanych09 написал: по ключу "MS 11.2 TI Started Actual" копируются из соседнего ключа "MS 11.8 Site On-Air Actual".
ещё раз: вы путаете понятие ключ и шапка! - сопоставление с шапкой заданной идёт в любом порядке (сверка лишь на есть или нет) - проверка функцией Instr... чтобы выгрузка была в нужном порядке - столбцы на листах должны быть в одном порядке - чтобы массив столбцов для выгрузки формировался в одной последовательности... иначе, если делать на все другие случаи - и макрос будет другой под другие задачи (как уже писала) - надо будет вставлять др проверки, можно делать словарь в словаре, или по-другому организовывать работу с массивом (шапки) - для этого вам понимать, как работать с массивом, и др...
если всё делать за вас -
Цитата
JayBhagavan написал:  (для таких случаев есть ветка "работа")
- я делала макрос на основе первоначального файла и постановки вопроса... дорабатывать не буду (не имею времени более, чем на один пост)... да и цели не было писать макрос под ключ (много нюансов - не было времени в них вникать)... поэтому и отметила:
Цитата
JeyCi написал: изучайте, переделывайте   если что ещё или что не так
- но для этого надо понимать каждую строку, что она делает, чтобы вставить в макрос, что ещё ему делать и где... есть много справочного материала и в сети, и на сайтах поддержки/справки пользователей excel... это большой кусок инфо, но и большой кусок кода уже написан для примера, - я не смогу разъяснить вам всё vba - если вы не приложите своих усилий: поймите, что делает код (общие комментарии по коду и каждая его отдельная строка) и лишние вопросы отпадут сами собой. Ответ на ваш вопрос ДА - т.к. вы не отмечали в первом посте, что должно быть по-другому)
Изменено: JeyCi - 20.08.2015 16:48:17
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх