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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 00:50   #1
Fradik1
Новичок
Джуниор
 
Регистрация: 04.11.2011
Сообщений: 1
По умолчанию Сравнение таблиц Excel

Доброго времени суток!
Есть две таблице(книги) exсel с двумя столбцами id и fio, как сравнить две этих таблице и в третью поместить результат сравнения. Таблицы сравниваются по id, т.е. если в первой таблице есть строка ID=1111 и во второй ID=1111 то эту строку нужно поместить в третью таблицу. Строк около 10000 в одной таблице и около 5000 в другой... вреде как то так)
Fradik1 вне форума Ответить с цитированием
Старый 04.11.2011, 01:38   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Делал как-то...
Вместо единиц заносите в массив свои данные (массив пошире сделайте) и выгружайте в другой лист (например в новую книгу).

Вернее заносить в третий массив нужно в порядке поступления, и количество строк хранить в счётчике - чтоб потом выгрузку не сортировать, чтоб пустые строки убрать.
Но был бы пример - можно под него переделать.
А так - пока так.
Вложения
Тип файла: zip Compare_Arrays_post_271177.zip (9.0 Кб, 49 просмотров)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 04.11.2011 в 12:49.
Hugo121 вне форума Ответить с цитированием
Старый 06.11.2011, 13:01   #3
Slava321
Пользователь
 
Регистрация: 04.11.2011
Сообщений: 17
По умолчанию

Вот пример я в макросах не бумбум) вот что нужно)
Вложения
Тип файла: rar Пример1.rar (17.6 Кб, 28 просмотров)
Slava321 вне форума Ответить с цитированием
Старый 06.11.2011, 13:54   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вообще-то могли уже давно сделать с помощью
http://www.excelworld.ru/index/comparefiles_find/0-25
или
http://hugo.nxt.ru/CompareFiles.Find.rar

Тот файл, который kuklp давал на sql, немного устарел, тут всегда посвежее.
Но на такие объёмы будет небыстро, десяток минут вероятно будет работать.
Получите пометки, по которым легко строки вручную отсортировать и скопировать куда угодно.

А с Вашими примерами и не проверишь - по чему сравнивать то?
Вроде нужно по SIM_CARD_N, но их одинаковых нет...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.11.2011, 13:58   #5
Slava321
Пользователь
 
Регистрация: 04.11.2011
Сообщений: 17
По умолчанию

по телефонным номерам
Slava321 вне форума Ответить с цитированием
Старый 06.11.2011, 14:06   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вообще-то я и Ваш код наладил, только вот как сортировать по цвету?
Может лучше вместо (или вместе с) покраски как в моём том коде пометки в свободном столбце ставить?
Например так:
Код:
            If Not x Is Nothing Then
                Cells(i, "A").Interior.ColorIndex = 12
                Cells(i, "L").Value = "Есть!"
Но тоже небыстро будет - у меня также по find работает...

Код:
Private Sub CommandButton1_Click()
    Dim i As Long, x As Range, Fst As String
    Application.ScreenUpdating = False
    Workbooks("активация.xls").Sheets(1).Activate
    With Workbooks("реестр по ТС.xls").Sheets(1)
         Columns("A").Interior.ColorIndex = xlNone:
        .Columns("C").Interior.ColorIndex = xlNone:
        For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
            Set x = .Columns("C").Find(what:=Cells(i, "A"), LookAt:=xlWhole)
            If Not x Is Nothing Then
                Cells(i, "A").Interior.ColorIndex = 12
                Fst = x.Address
                Do
                    .Cells(x.Row, "C").Interior.ColorIndex = 8
                    Set x = .Columns("C").FindNext(x)
                Loop While Fst <> x.Address
            End If
        Next
    End With

End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.11.2011 в 14:09.
Hugo121 вне форума Ответить с цитированием
Старый 06.11.2011, 14:32   #7
Slava321
Пользователь
 
Регистрация: 04.11.2011
Сообщений: 17
По умолчанию

Спасибо да это я пробовал методом проб и ошибок))) подсветка работает вот только теперь еще надо что эти совпадения копировались в другую книгу по структуре Активация.xls либо на другой лист в книге Активация.xls
Slava321 вне форума Ответить с цитированием
Старый 06.11.2011, 14:40   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Я предлагаю вручную поработать
Вообще, если такие объёмы, такие данные и будете делать часто - нужно на массивах и словаре делать, типа как в моём первом ответе.
Переделывайте - у меня сейчас другие приоритеты
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.11.2011, 14:48   #9
Slava321
Пользователь
 
Регистрация: 04.11.2011
Сообщений: 17
По умолчанию

Спасибо буду разбираться
Slava321 вне форума Ответить с цитированием
Старый 06.11.2011, 17:30   #10
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Ответили на SQL. Кросспостинг - нехорошо!
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Направьте в нужное русло. Сравнение двух больших таблиц Excel hijke Microsoft Office Excel 6 05.05.2011 13:24
Сравнение таблиц в Excel и вычитание Лампочка Microsoft Office Excel 4 02.05.2011 09:51
Сравнение таблиц Excel 2003 Арсений Михайлович Microsoft Office Excel 12 20.07.2010 09:36
Сравнение двух таблиц Excel veronica85 Microsoft Office Excel 1 17.05.2010 19:42
Сравнение таблиц Excel VBA sergey_wckd Microsoft Office Excel 6 24.03.2010 17:30