Здравствуйте, прошу помощи в вопросе, над которым в силу отсутствия знаний и опыта работы в VBA бьюсь уже довольно долго. Необходимо написать макрос обрабатывающий данные из двух таблиц.
Как видно из скриншота, первая представляет из себя следующее: 1 столбец - название улицы, 2 столбец - номер дома на этой улице, 3 столбец содержит 3 типа данных: "Стул", "Тапок" и "Гиря".
Во второй таблице есть адрес и 3 отдельных столбца - "Стул", "Тапок" и "Гиря".
Необходимо посчитать сколько стульев, тапок и гирь находится по адресам в Табл1 и проставить в Табл2 их количество в соответствующие графы.
Был бы крайне благодарен не то что за код, а хотя бы на указание направления, куда копать, ибо из-за отсутствия опыта, даже не представляю, каким способом эту проблему можно решить
Прошу прощения за, возможно, неуклюжие примеры. Первое, что пришло в голову
Здравствуйте, прошу помощи в вопросе, над которым в силу отсутствия знаний и опыта работы в VBA бьюсь уже довольно долго. Необходимо написать макрос обрабатывающий данные из двух таблиц.
Как видно из скриншота, первая представляет из себя следующее: 1 столбец - название улицы, 2 столбец - номер дома на этой улице, 3 столбец содержит 3 типа данных: "Стул", "Тапок" и "Гиря".
Во второй таблице есть адрес и 3 отдельных столбца - "Стул", "Тапок" и "Гиря".
Необходимо посчитать сколько стульев, тапок и гирь находится по адресам в Табл1 и проставить в Табл2 их количество в соответствующие графы.
Был бы крайне благодарен не то что за код, а хотя бы на указание направления, куда копать, ибо из-за отсутствия опыта, даже не представляю, каким способом эту проблему можно решить
Прошу прощения за, возможно, неуклюжие примеры. Первое, что пришло в голову mosher13
Макросы создавать необязательно, можно и формулами (СУММПРОИЗВ работает и с закрытыми книгами, ссылки на внешнюю книгу и диапазоны в ней проставьте сами)
Еще вариант - построить сводную таблицу на данных Табл.1
Можно, конечно, и макрос написать, но он будет иметь смысл только при использовании ADO (иначе в любом случае проигрываем в скорости), и будет выполнять работу сводной таблицы - тот же SELECT + PIVOT.
Макросы создавать необязательно, можно и формулами (СУММПРОИЗВ работает и с закрытыми книгами, ссылки на внешнюю книгу и диапазоны в ней проставьте сами)
Еще вариант - построить сводную таблицу на данных Табл.1
Можно, конечно, и макрос написать, но он будет иметь смысл только при использовании ADO (иначе в любом случае проигрываем в скорости), и будет выполнять работу сводной таблицы - тот же SELECT + PIVOT.AndreTM
Насчет ваших решений я не совсем уверен, т.к. там довольно сложная (идиотская) структура у настоящих таблиц - данные в разнобой, адреса не по порядку, да еще и "тапочки с гирями", которые на самом деле аббревиатуры, надо вычленять из других аббревиатур, которые с ними слитно написаны, да еще и 15к строк. В общем, если вы считаете, что формулами можно справиться, я попробую, но меня это несколько смущает, честно говоря.
AndreTM, спасибо за ответ.
Насчет ваших решений я не совсем уверен, т.к. там довольно сложная (идиотская) структура у настоящих таблиц - данные в разнобой, адреса не по порядку, да еще и "тапочки с гирями", которые на самом деле аббревиатуры, надо вычленять из других аббревиатур, которые с ними слитно написаны, да еще и 15к строк. В общем, если вы считаете, что формулами можно справиться, я попробую, но меня это несколько смущает, честно говоря.mosher13
Ну так опишите задачу более подробно, с примерами реальной структуры исходных данных, их точным расположением и т.п. Решить-то можно всё, надо просто уметь правильно ставить задачу...
Ну так опишите задачу более подробно, с примерами реальной структуры исходных данных, их точным расположением и т.п. Решить-то можно всё, надо просто уметь правильно ставить задачу... AndreTM
AndreTM, я не могу привести более реальный пример структуры данных, т.к. всю структуру я уже привел. В остальном, данные просто плохо отформатированы и и их 15к строк, вот и все. Мне бы хотелось их извлечь макросом, в частности для того, чтобы человек бесконечно далекий от Экселя смог через полгода просто его импортировать и сделать тоже самое с любой другой подобной таблицей, как-то так
AndreTM, я не могу привести более реальный пример структуры данных, т.к. всю структуру я уже привел. В остальном, данные просто плохо отформатированы и и их 15к строк, вот и все. Мне бы хотелось их извлечь макросом, в частности для того, чтобы человек бесконечно далекий от Экселя смог через полгода просто его импортировать и сделать тоже самое с любой другой подобной таблицей, как-то так mosher13
Ну почему только ADO? Тут можно на словаре в словаре делать - в первом ключ Улица&Дом, во втором собираем наименования, у которых в item суммируются количества повторов. Примеры на форуме были, я точно их много писал.
Ну почему только ADO? Тут можно на словаре в словаре делать - в первом ключ Улица&Дом, во втором собираем наименования, у которых в item суммируются количества повторов. Примеры на форуме были, я точно их много писал.Hugo