Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2012, 11:27   #1
mitinomax
 
Регистрация: 08.02.2012
Сообщений: 3
По умолчанию сравнение двух файлов и формирование третьего

Доброго времени, отцам vbs и его пользователям. Перековырял всю ветку, нашЁл много интересного, но вот именно того что нужно найти не удалось. Помогите, если есть возможность, значит суть в следующем: есть основной прайс лист 01.xls(~10000 строк) и есть второй прайс 02.xls. Первый прайс имеет колонки: 1-я - наименование, остальные 5-6 колонок - цены. Второй прайс имеет одну колонку - Наименование. Цель макроса - надо сравнить колонки наименований этих двух файлов и если есть совпадения, то сформировать 3-й файл в котором будет список наименований(совпавших) только уже с ценами (т.е. всю строку из первого файла), если например какого-то наименования из второго файла нет в первом, все равно вписать это наименование в третий файл, но с подписью "не найден"(или что-нить в этом роде). Заранее благодарю за любую помощь или совет. пример прилепляю...



--------- примечание модератора - вдруг кому пригодится --------------
Цитата:
Надстройка LOOKUP предназначена для сравнения и подстановки значений в таблицах Excel.

Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.


В настройках программы можно задать:
  • где искать сравниваемые файлы (использовать уже открытый файл, загружать файл по заданному пути, или же выводить диалоговое окно выбора файла)
  • с каких листов брать данные (варианты: активный лист, лист с заданным номером или названием)
  • какие столбцы сравнивать (можно задать несколько столбцов)
  • значения каких столбцов надо копировать в найденные строки (также можно указать несколько столбцов)

Скачать надстройку для сравнения таблиц Excel и копирования данных из одинаковых строк

Вложения
Тип файла: rar pack.rar (3.8 Кб, 25 просмотров)

Последний раз редактировалось EducatedFool; 30.09.2013 в 09:59.
mitinomax вне форума Ответить с цитированием
Старый 11.02.2012, 14:29   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Цитата:
Сообщение от mitinomax Посмотреть сообщение
за любую помощь или совет. пример прилепляю...
Я бы считал оба файла в массивы и обработал.
Может даже будет быстрей если применить словарь. За один проход загдать один массив в словарь, а вторым проходом по другому масиву выбрать значения. Ну а потом просто создать новую книгу и вывалить массив результатов на лист.
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 11.02.2012, 17:25   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Зачем третий файл? Почему не писать цены сразу во второй? И сохранить его как третий
Предлагаю за недорого
http://www.excelworld.ru/index/comparefiles_find/0-25
или
http://hugo.nxt.ru/CompareFiles.Find.rar
http://ibay.narod.ru/other/CompareFiles.Find.rar

Но 15 раз совершенно бесплатно, настройки под файлы из примера (пути поменяйте на свои):

Файл - приёмник: c:\Temp\mitinomax\f02.xls
Файл - источник: c:\Temp\mitinomax\f01.xls
Столбцы сравнения в приёмнике: a
Столбцы сравнения в источнике: a
Лист - приёмник (№): 1
Лист - источник (№): 1
Столбцы - приёмники данных копирования: B,C,D,E,F,G
Столбцы - источники данных копирования: B,C,D,E,F,G

Если два файла по 10000 строк - то будет небыстро, тогда нужен спецкод на словаре.
Ну а если во втором файле строк не десятки тысяч - то вполне юзабельно.
Если нужно именно написать "NotFind", то запустите с настройкой
Столбец для пометок в приёмнике: h
и отметив чекбокс "инверсия".

Получите результат
Код:
qweqw12	1		3	3	456	76	
dfg123123	3	324	3				
eqweqw43		66					
dffdhhj8976	786					5785	
dgdfgdggger464							NotFind
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 11.02.2012, 17:52   #4
mitinomax
 
Регистрация: 08.02.2012
Сообщений: 3
По умолчанию

какова цена вопроса?
mitinomax вне форума Ответить с цитированием
Старый 11.02.2012, 18:12   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Отвечу в личку - уже даже пытался, но она у Вас отключена
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 11.02.2012, 18:29   #6
mitinomax
 
Регистрация: 08.02.2012
Сообщений: 3
По умолчанию

Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 10 символов.

Последний раз редактировалось mitinomax; 11.02.2012 в 21:01.
mitinomax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами, сравнение двух файлов. zink Паскаль, Turbo Pascal, PascalABC.NET 7 01.11.2011 08:09
Сравнение двух массивов Рик Общие вопросы Delphi 3 07.04.2011 15:53
сравнение двух днф Zln Помощь студентам 0 11.05.2010 16:42
Сравнение двух произвольных файлов rem2010 Общие вопросы Delphi 2 03.05.2010 13:21
Сравнение двух файлов Excel (поячеечно) для выявления отличий IEEE Microsoft Office Excel 8 21.04.2010 15:45