Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Цитата
Inexsu написал:
Да. Уже придумано много хитростей для ускорения.
А какие из них лучше использовать в данной задаче?
Хотелось бы конечно не через Query, а макросом, чтобы как можно более автоматизированным было решение...
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu, это шедевр, огромное Вам спасибо!)

Сегодня пыталась внедрить этот макрос в файл, в котором порядка 150 тысяч строк, но макрос выполнялся около часа, и так и не выполнился (excel просто завис). Вероятно это из-за того, что на 150 тысяч строк там пустых строк около 100 тысяч, но если вручную их удалять, то на это тратится минут 10. В связи с чем и вопрос - можно ли тут как-то ускорить работу макроса? Может screenupdating использовать, или ещё какие-нибудь действенные варианты?
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu, супер, практически полностью задача решена, но есть одна проблемка...  Столбец "№ ID" зависим от значений и столбца "Департамент", и "Отдел". Т.е. если в одном из столбцов департамента или отдела допущена ошибка, то "№ ID" тоже должен выделяться красным. Ну и конечно сам по себе должен совпадать с справочным, но это реализовано.
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu, большое спасибо, как у компьютера буду, посмотрю
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu, а нет, я всё же ошиблась... После выполнения Вашего макроса в итоговом отчёте удаляются все строки, в которых есть значение «Дата». А нужно, чтобы первая строка с этим значением оставалась, так как это будет заголовок.
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu, в исходном отчёте, который я скинула, при нажатии кнопки отчёт и принимает требуемый вид. Ваше решение также полностью решает эту «Подзадачу №1» :)
Осталось сообразить, как решить вторую подзадачу. Пока и сама думаю, но безуспешно :(
Изменено: criss - 08.04.2019 09:45:37
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Inexsu,очень интересное решение, спасибо! А почему мы ищем звёздочку и при поиске крайнего столбца, и при поиске крайней строки? Она же по идее требуется только для нахождения номера строки? :oops:
И что нужно ещё приложить?
Макрос для сравнения столбцов с одинаковыми заголовками, находящимися в разных документах
 
Всем доброго времени суток!
Имею задачу, часть из которой решила самостоятельно, но дальше моих знаний по макросам не хватило, с чем и прошу о помощи :oops:
Подзадача №1.
Есть отчёт, который автоматически формируется довольно коряво, и его приходится постоянно приводить к нормальному виду вручную. Я написала макрос, который создаёт фильтр, и по нему в !!!указанных в коде макроса диапазонах!!! удаляёт всё ненужное. Но, конечно, диапазоны в разных отчётах разные, и лучше бы его как-то доработать, чтобы каждый раз руками значения не вводить. Диапазон для дальнейших изменений можно получить следующим образом - после удаления пустых столбцов номер последнего столбца можно найти на 3-й строке через ctrl+shift+стрелка вправо. А номер последней строки по символу звёздочки (*), которая всегда находится во втором столбце с заголовком "Дата". Начинается диапазон с ячейки A3. Думаю, что можно обойтись и без создания фильтра. Так как будет известен диапазон, то в нём будут прописаны следующие условия - нужно удалить все строки, во втором столбце которых находится значение "Дата", а также все пустые строки.
Подзадача №2.
После коррекции отчёта в нём на 3-й строке будут заголовки. Имеется второй файл "Справочник", в котором заголовки находятся также на 3-й строке. Нужно проверить правильность данных трёх столбцов из отчёта по следующим заголовкам: "Департамент", "Отдел", "№ ID" по таким же названиям столбцов из файла "Справочник". Для этого создаются три новых листа в файле отчёта. В лист "Департамент" копируется столбец из отчёта с заголовком "Департамент", и все ячейки сравниваются с "справочными". Если какой-то ячейки нет в диапазоне "справочного" департамента, то она, к примеру, выделяется красной заливкой. Аналогично для столбца "Отдел". И наконец, "№ ID" - тут уже копируются столбцы "Департамент" и "№ ID". Они зависимы друг от друга и значения из обеих ячеек должны совпадать со значениями из ячеек справочника.
P.S. красным шрифтом выделила ячейки, в которых специально допущены ошибки (для проверки)
Заранее огромное спасибо!
Макрос, вырезающий часть данных из таблицы
 
Alemox, практически туда, куда и нужно было) Но я расширила диапазон в недостающих ячейках) (то немногое, что пока что умею делать с макросами ахаха)
Спасибо Вам ещё раз большое, очень помогли)
Изменено: criss - 31.03.2019 21:28:01
Макрос, вырезающий часть данных из таблицы
 
Alemox, это просто восхитительно, спасибо Вам большущее))
А такой вопросик ещё - если в шапке будет установлен фильтр на верхних ячейках, может ли вообще макрос его запоминать и отображать на создаваемых файлах? Я про этот пункт совсем забыла)
Если да, то как можно дополнить этот макрос?
Макрос, вырезающий часть данных из таблицы
 
Всем доброго дня!
Хотела узнать вот какой вопрос... Есть таблица, которая состоит из нескольких частей. Первые три строчки таблицы являются шапкой, которая относится к каждой из частей. У каждой части есть свой заголовок. Можно ли с помощью макроса реализовать следующий функционал - макрос определяет диапазон каждой части, копирует его, а также те самые три первые строчки главной таблицы, и сохраняет в новом файле Excel? А имя этого файла будет носить название первой ячейки каждого заголовка. Количество копируемых столбцов можно указать в самом макросе вручную.
Т.е., если в таблица состоит из 10 частей, то в конечном итоге будет создано 10 файлов excel с названиями тех заголовков, к которым они относятся.

Так как таблицу нельзя менять стилистически, думаю, что для того, чтобы макрос определял диапазон, можно создать отдельный столбец слева от таблицы, в котором закрасим границы каждого диапазона. В случае с примером это ячейки с зелёной заливкой. Заранее благодарю за помощь!
Макрос вставки определённого диапазона данных в общую таблицу
 
Юрий М, это просто высший класс, всё работает)
Спасибо Вам огроооомное)  
Макрос вставки определённого диапазона данных в общую таблицу
 
Юрий М, давайте попробуем с цветом? Вариант конечно сложнее, но это поможет также изучить и понять структуру макросов (что является несомненным плюсом)
Макрос вставки определённого диапазона данных в общую таблицу
 
Цитата
Юрий М написал:
Ещё вариант - искать по цвету заливки, если в реальности таблица так и оформлена.
Юрий М, кстати да, цвет у заголовков всегда свой, а у остальной части блока свой, так что такой способ может быть использован.
Но опять же, нужно же всё равно выбирать, куда именно вставлять тот или иной диапазон. Или Вы предлагаете создать проверку по двум условиям (вводимому номеру строки с клавиатуры и цвету заливки)?
Макрос вставки определённого диапазона данных в общую таблицу
 
Юрий М, в реальности по-разному. Преимущественно заголовки без подчеркиваний, но если по этому подчёркиванию составлять в макросе условие, то будет не во всех ситуациях корректное выполнение.
Я долго думала, каким способом определить конец/начало блоков, но самым эффективным в данном случае наверное всё же будет указание номера начальной для вставки строки с клавиатуры.
На мой взгляд, можно было бы задать такой алгоритм макроса - пользователь указывает номер строки, с которого нужно вставлять диапазон данных. Макрос считывает количество строк в диапазоне, вставляет обнаруженное число строк, и просто копирует диапазон...
Макрос вставки определённого диапазона данных в общую таблицу
 
Юрий М, да, я заметила, что сразу не указала информацию про это
Но потом дополнила)
В идеале было бы с клавиатуры конечно
Макрос вставки определённого диапазона данных в общую таблицу
 
Добрый вечер, дорогие форумчане!
Столкнулась с пока нерешаемой для меня задачей, выручите плиз)
Есть документ, который содержит в себе информацию по разным структурам. Часто возникает потребность в дополнении таблицы путём вставки диапазона данных внутрь общей структуры.
Вручную это делать довольно долго, особенно когда таблица состоит из десятков тысяч строк.
Нужен макрос, который будет в указанный номер ячейки (в идеале с клавиатуры) добавлять n-ое количество строк (в соответствии с количеством строк диапазона, который нужно вставить), и собственно вставлять этот диапазон внутрь общей таблицы. Диапазон для вставки располагается на отдельном листе (хотя это и не принципиально, просто мне кажется так будет проще)
Заранее большое спасибо!
Изменено: criss - 19.03.2019 22:30:22
Как сформировать выборку данных из таблицы по нескольким условиям?
 
Да, получилось разобраться, я и доп. таблицу для этого добавила, всё прекрасно работает. Очень Вам благодарна)
Как сформировать выборку данных из таблицы по нескольким условиям?
 
Сергей, это просто потрясающе, огрооомное Вам спасибо!)
Изменено: criss - 16.03.2019 16:55:12
Как сформировать выборку данных из таблицы по нескольким условиям?
 
Доброго дня!
Столкнулась с такой задачей.
В общем, есть два расписания сотрудников гостиницы - штатное (составляется на месяц и не меняется), и то, которое выгружается каждый день на основе реальных данных (обозначим "выгрузка").
В каждой из таблиц есть должность, ID гостиницы, и количество сотрудников по каждому ID.
Задача такая - нужно для каждого ID извлечь количество сотрудников для каждой должности.
Из таблицы выгрузки данные вытаскиваются очень просто с помощью сводной таблицы, так как её изначальный вид самый примитивный.
Но таблица штатного расписания сформирована иначе, и я уже долго мучаюсь, но никак не могу понять, как можно было бы автоматизировать выгрузку данных.
Пробовала и через ГПР, и через ИНДЕКС и ПОИСКПОЗ, пока ничего не получается. Сейчас пытаюсь вариант с макросом создать, но в них пока не очень сильна, поэтому прошу вашей помощи)
Файл с расписаниями во вложении. Заранее большое спасибо!
Изменено: criss - 16.03.2019 14:24:18
Страницы: 1
Наверх