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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 11:48   #1
lapsus
 
Регистрация: 15.04.2010
Сообщений: 7
По умолчанию Сравнение двух таблиц и вывод результата в третьей

Уважаемые знатоки!
Стоит следующая задача: есть два листа с таблицами, имеющими общие столбцы. Необходимо сравнить их по столбцу "Наименование" (оно может совпадать лишь по одному слову, может быть идентичным).
Затем итог сравнения записать на третий лист, желательно, следующим образом: т.к. сравниваемых значений сравнительно много, в первом столбце указывать "эталоны" (с первого листа) напротив них в следующих столбцах схожие значения, желательно ссылками
на эти строки во 2ом листе.
Т.к. мои познания в vba совсем скудны, если не сказать напрочь отсутствуют, решить самостоятельно не удается..
Буду рада, если вы сможете подсказать, как это сделать
Заранее спасибо!
lapsus вне форума Ответить с цитированием
Старый 31.05.2010, 11:57   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Для того, чтобы получить быстрый и точный ответ, приложите файл с исходными таблицами. Можно с "липовыми" данными и всего в несколько строк, но, желательно, чтобы в примере имелись все возможные варианты. И на отдельном листе - желаемый результат. Укажите версию Excel, а также, возможное количество строк, т.к. в различных частных ситуациях, наиболее рациональный метод решения может быть разным.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 31.05.2010, 13:36   #3
lapsus
 
Регистрация: 15.04.2010
Сообщений: 7
По умолчанию Собсна, файл.

На 1 и 2 листах таблицы, которые нужно сравнивать.

Документ версии 2003, что по самому файлу и видно, но у нас у всех установлен 2007. Так что можно и в этом формате.
Вложения
Тип файла: rar f.rar (89.8 Кб, 62 просмотров)
lapsus вне форума Ответить с цитированием
Старый 31.05.2010, 13:46   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Нужно определиться, что значит "схожие" записи. Например, чем схожи записи
Цитата:
Автом.уст.д/пов.монтажа PA 1308/20 GEM EMERALD
и
Цитата:
АУ д/поверхного монтажа комп. PA 1308/20 GEM EMERALD
Давайте определим критерий, по которому можно считать, что записи схожи. Например, процент совпадения по отдельным словам и т.п. Также, не понятно, что значит 2-я схожая запись, 3-я и т.д.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 31.05.2010, 14:59   #5
lapsus
 
Регистрация: 15.04.2010
Сообщений: 7
По умолчанию

В том-то и беда, что сложно понять как автоматически определить схожие
Глазом я вижу похожие) просто сокращения по-разному указаны =\
Т.к. однозначно определить нельзя будет, я и решила, что можно выводить несколько похожих записей.
Например, несколько строк совпадет по слову "осциллограф". В обеих таблицах их не по одному казано.. либо просто указать в первом столбце "TDS1012 Осциллограф 100Мгц 2 канала" (из первой таблицы) и дальше в столбце 1ое значение: Осциллограф 100МГц, 2 канала TDS1012; второе: Осциллограф 2*60МГц и т.д. из второй таблицы В идеале нужно бы, чтоб на "TDS1012 Осциллограф 100Мгц 2 канала" выдало лишь "Осциллограф 100МГц, 2 канала TDS1012", но вряд ли можно организовать столь интеллектуальный поиск) Может, как-нить массивом и сверять первый элемент со всеми элементами второго массива-строки. Как только находит совпадение, к примеру, единица в счетчик, затем следующее слово.. если счетчик больше либо равен двум, выводить результат. В общем-то, я не программер )) но могу такой алгоритм озвучить..

Последний раз редактировалось lapsus; 31.05.2010 в 15:34.
lapsus вне форума Ответить с цитированием
Старый 31.05.2010, 21:36   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте lapsus.
Любой "озвученный" Вами алгоритм не в состоянии будет справиться с подобной "головоломкой", он не сможет понять что "Осветительный блок ОБ" и "Осветительный блокОБ" это опечатка а не два разных устройства.
Сначала группировка наименований, систематизация (приведение к единому виду - "Жало ET-JL миниволна для LR" >> "Жало ET-JL миниволнад/LR") и только потом возможно корректное "..Сравнение двух таблиц..".
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 31.05.2010, 21:54   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от lapsus Посмотреть сообщение
В том-то и беда, что сложно понять как автоматически определить схожие
Глазом я вижу похожие) просто сокращения по-разному указаны =\
Т.к. однозначно определить нельзя будет, я и решила, что можно выводить несколько похожих записей.
Например, несколько строк совпадет по слову "осциллограф". В обеих таблицах их не по одному казано.. либо просто указать в первом столбце "TDS1012 Осциллограф 100Мгц 2 канала" (из первой таблицы) и дальше в столбце 1ое значение: Осциллограф 100МГц, 2 канала TDS1012; второе: Осциллограф 2*60МГц и т.д. из второй таблицы В идеале нужно бы, чтоб на "TDS1012 Осциллограф 100Мгц 2 канала" выдало лишь "Осциллограф 100МГц, 2 канала TDS1012", но вряд ли можно организовать столь интеллектуальный поиск) Может, как-нить массивом и сверять первый элемент со всеми элементами второго массива-строки. Как только находит совпадение, к примеру, единица в счетчик, затем следующее слово.. если счетчик больше либо равен двум, выводить результат. В общем-то, я не программер )) но могу такой алгоритм озвучить..
По вашей идее во вложении для эксперимента
Вложения
Тип файла: rar f.rar (97.8 Кб, 82 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 01.06.2010, 12:11   #8
lapsus
 
Регистрация: 15.04.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
По вашей идее во вложении для эксперимента
Спасибо, попробую)
lapsus вне форума Ответить с цитированием
Старый 01.06.2010, 12:41   #9
lapsus
 
Регистрация: 15.04.2010
Сообщений: 7
По умолчанию

2doober:
В общем-то, вроде, похоже. Только надо бы результаты сравнения (т.е. значения в столбцах B, C, D и т.д.) выводить ссылками на соответствующие им ячейки на листе 2. Возможно ли это?
lapsus вне форума Ответить с цитированием
Старый 01.06.2010, 13:13   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Попробуйте так.


Код:
Private Sub CommandButton1_Click()
l = 2

For m = 35 To 1316 
i = 0

Dim fl As Boolean
fl = False

For n = 8 To 169 
d = Simil(Лист1.Cells(m, 2), Лист2.Cells(n, 2))
If d > 0.3 Then  

Sheets("Лист3").Cells(l, 1).Value = Лист1.Cells(m, 2)
Sheets("Лист3").Cells(l, 2 + i).Formula = "=Лист2!" & Лист2.Cells(n, 2).Address
i = i + 1
fl = True
End If
Next
If fl = True Then
l = l + 1
End If
Next

End Sub
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 01.06.2010 в 13:20.
doober вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение двух таблиц Excel veronica85 Microsoft Office Excel 1 17.05.2010 19:42
Сравнение двух таблиц, с целью поиска разницы. 159258357 Microsoft Office Excel 1 29.03.2010 21:34
Сравнение двух листов и вывод в определённой последовательности ОlGa Microsoft Office Excel 1 29.01.2010 21:06
Сравнение значениний двух таблиц azz123 Microsoft Office Excel 2 06.11.2009 10:54
Сравнение двух таблиц scaramangi Microsoft Office Excel 0 17.09.2009 17:15