|
|
|
Макрос в Эксель (приведение 2 листов к одинаковому списку)
|
|||
|---|---|---|---|
|
#18+
Товарищи знатоки: возник вопрос по созданию макроса в Эксель (VB(А) следующего характера: задача: требуется сравнить и преобразовать посредством макроса 2 листа 1-й книги. В каждом из 2 листов в 3 столцах содержится сходная информация (наименование улицы, № дома, корпуса). Однако абсолютно перечни не совпадают. Дабы была возможность наложить списки друг на друга (построчно объединить данные из обоих листов простым копи-пастом) требуется привести списки в Лист1 и Лист2 к единообразному виду - т.е. провести построчное сравнение, в момент обнаружения несовпадения - например в листе 1 есть строка по дому Л, а в листе 2 такой информации нет - требуется в листе 2 после последнего совпадения добавить строчку - и занести в соответствующие 3 ячейки листа 2 информацию из 3-х ячеек листа 1. В обратной ситуации - в листе 2 есть информация по дому К, а в листе 1 такой информации нет - требуется соответственно добавить после последнего совпадения строку, проведя аналогичные действия. Требуется ИМЕННО ДОБАВЛЯТЬ строки в представленных листах, а не переносить их в какой-либо 3-й лист. В случаях, когда в каком-либо листе один и тот же дом упомянут дважды (полное сопадение адреса), а в другом такого повторения нет, необходимо ТОЖЕ добавить такую строку в другой лист (а не удалять и прочее), т.к. прочая инфа по каждой строке абсолютно уникальна. Для иллюстрации поставленной задачи - прикрепил файл-образец с 2 листами, которые оба необходимо привести к единому перечню. Там же для примера приведены 2 листа - как в теории должен выглядеть результат работы макроса. Сам не являясь программистом, в вопросе совершенно не разбираюсь . Прошу, кто знает - помогите написать... ПС: Вручную чувствую меня это запарит... там у меня в оригинале 17000 строк... :(( и операцию эту надо провести пару раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2009, 10:55:00 |
|
||
|
Макрос в Эксель (приведение 2 листов к одинаковому списку)
|
|||
|---|---|---|---|
|
#18+
yurgo, В пп. 12-13, 23-24, 26-27, у тебя ошибочно указаны одинаковые улица, дом, корпус? Почему тебе не хочется сделать проще формулами, а заморачиваться макросами? Могу предложить следующее (немного трудоемко, но пока народ напишет макрос, может ты уже все и сделаешь): 1. Сделать общий список улиц, адресов, корпусов. Берем 2 списка адресов (колонки B, C, D). Вставляем один под другой В стобце E пишем формулу: =СЦЕПИТЬ(B2;"~";C2;"~";D2) Знак тильды ~ необходим для того, чтобы в последствии разбить список по столбцам. Копируем столбец E -- вставляем как значения. 2. Убираем лишние данные Данные -- фильтр -- расширенный фильтр -- отобрать уникальные данные -- скопировать в другое место -- указать место куда скопировать. Данные -- сортировка -- отсортировать по возрастанию. 3. Восстанавливаем данные по ячейкам. Данные -- Текст по столбцам -- знаками разделителями -- "другой" подставляем тильду ~ -- ОК. после этого у тебя имеется список всех необходимых адресов. Дальше ты приводишь данные из старых данных в новые Смотри формулу в прикрепленном файле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2009, 06:37:22 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35861010&tid=2179721]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
192ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 500ms |

| 0 / 0 |
