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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2009, 15:32   #1
Mr.Wonderful
 
Регистрация: 23.11.2009
Сообщений: 4
По умолчанию Поиск совпадений и вывод на новую страницу

Доброго времени суток!
У меня огромная просьба к "богам Excel'a" соорудить макрос который ищет соответствия из разных столбцов и выводит на новый лист эти совпадения. А именно, каждый номер из столбца G, сравнивает с номерами столбца E, если находит совпадение, то на новом листе выводит полностью строку(и) касающююся(иеся) этого номера, если не находит - переходит к следующему. (хорошо бы если при выводе было разделение между разными номерами)
Вот как то так!
Буду ооочень признателен!
Вложения
Тип файла: rar ТЕЛЕфонная книга.rar (21.8 Кб, 57 просмотров)
Mr.Wonderful вне форума Ответить с цитированием
Старый 24.11.2009, 15:52   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот весь код:
Код:
Sub test()
    Dim cell As Range, ra As Range
    Set ra = [a1:e1] ' строка заголовка
    For Each cell In Range([e1], Range("e" & Rows.Count).End(xlUp)).Cells
        If Len(cell) Then    ' ищем непустые ячейки в столбце Е
            If Not Range("g:g").Find(cell) Is Nothing Then
                ' если такое значение есть в столбце G
                Set ra = Union(ra, Range(cell, cell.EntireRow.Cells(1)))
            End If
        End If
    Next cell
    Dim sh As Worksheet: Set sh = Worksheets("Результат")
    sh.UsedRange.Clear    ' очистка листа от прежних данных
    ra.Copy sh.[a1]    ' копирование найденных строк
End Sub
Пример файла: http://excelvba.ru/XL_Files/Sample__...__17-53-56.zip


(добавлено позже)
-------------------------------------------
Надстройки и программы для поиска в Excel:
http://excelvba.ru/category/Excel/search

Надстройка для поиска на всех листах книги Excel
Надстройка для поиска в Excel с выводом результатов на новый лист
Поиск из поля на панели инструментов Excel



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

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


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

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


Последний раз редактировалось EducatedFool; 30.09.2013 в 09:34.
EducatedFool вне форума Ответить с цитированием
Старый 24.11.2009, 22:35   #3
Mr.Wonderful
 
Регистрация: 23.11.2009
Сообщений: 4
По умолчанию

Воистину божественно! =)))) Завидую Вам белой завистью, как легко Вам это дается.

Последний раз редактировалось Mr.Wonderful; 24.11.2009 в 23:10.
Mr.Wonderful вне форума Ответить с цитированием
Старый 24.11.2009, 22:57   #4
Mr.Wonderful
 
Регистрация: 23.11.2009
Сообщений: 4
По умолчанию !!!

И еще одна просьба-пожелание - при выводе совпавшие номера идут в разброс, как нужно изменить цикл, чтобы он их выводил "стопками"?

Последний раз редактировалось Mr.Wonderful; 25.11.2009 в 11:31.
Mr.Wonderful вне форума Ответить с цитированием
Старый 27.11.2009, 10:03   #5
Mr.Wonderful
 
Регистрация: 23.11.2009
Сообщений: 4
По умолчанию

Чего то не получается адаптировать под исходную (чуть модифицированную) таблицу! Если добавить пару столбцов с данными перед проверяемым столбцом всё перестаёт работать!
И ещё вопрос, как при выводе сгруппировать результаты сравнения по номерам (найденные сходства выводятся в разброс)?
ПРОШУ ВАШЕЙ ПРОФЕССИОНАЛЬНОЙ ПОМОЩИ!
Mr.Wonderful вне форума Ответить с цитированием
Старый 16.03.2011, 11:07   #6
vidokru
Новичок
Джуниор
 
Регистрация: 31.01.2011
Сообщений: 2
По умолчанию

Добрый день, подскажите пожалуйста, что нужно сделать что бы этот код искал текстовые значения и выводил их на другую страницу.
vidokru вне форума Ответить с цитированием
Старый 16.03.2011, 12:12   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
что нужно сделать что бы этот код искал текстовые значения и выводил их на другую страницу
Где пример файла? (с исходными данными, и ожидаемым результатом)
EducatedFool вне форума Ответить с цитированием
Старый 17.03.2011, 14:34   #8
vidokru
Новичок
Джуниор
 
Регистрация: 31.01.2011
Сообщений: 2
По умолчанию

Пожалуйста помогите что бы при нажатии клавиши поиск производился поиск фамилий в базе находящейся на другой странице, и все найденные строчки в которых есть нужная фамилия копировались на страничке "Поиск"
Вложения
Тип файла: rar Пример.rar (21.0 Кб, 22 просмотров)
vidokru вне форума Ответить с цитированием
Старый 21.03.2011, 09:34   #9
Kinet
 
Регистрация: 17.03.2011
Сообщений: 3
По умолчанию

Здрасте всем. Нужна помощь в создании макроса, так как сам в этом ни че не понимаю. Вообщем есть файл, на 1 листе тел. номера с именами, а на втором детализация звонков. Нужно что бы происходило сравнение номеров в детализации с номерами на 1-м листе, при совпадении в столбец I второго листа записывалось имя соответствующее номеру. Заранее спасибо большое!
Вложения
Тип файла: zip tel.zip (24.9 Кб, 22 просмотров)
Kinet вне форума Ответить с цитированием
Старый 21.03.2011, 09:44   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от Kinet Посмотреть сообщение
Нужна помощь в создании макроса, так как сам в этом ни че не понимаю. Вообщем есть файл, на 1 листе тел. номера с именами, а на втором детализация звонков. Нужно что бы происходило сравнение номеров в детализации с номерами на 1-м листе, при совпадении в столбец I второго листа записывалось имя соответствующее номеру.
Как же вы все любите макросы...

Простейшая формула вам поможет:
Код:
  Ячейка: I2      Формула  (стиль A1):   =ЕСЛИ(ЕНД(ВПР(E2;Лист1!A:E;5;0));"";ВПР(E2;Лист1!A:E;5;0))
                  Формула  (стиль R1C1): =ЕСЛИ(ЕНД(ВПР(RC[-4];Лист1!C[-8]:C[-4];5;0));"";ВПР(RC[-4];Лист1!C[-8]:C[-4];5;0))
Пример - в файле: http://excelvba.ru/XL_Files/Sample__...__11-45-33.zip
EducatedFool вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений mistx Microsoft Office Excel 22 14.08.2009 13:41
Вывод суммы значений на страницу сайта BIOX PHP 6 22.06.2009 16:37
Задача на поиск и вывод компонентов stscolt Помощь студентам 1 11.04.2009 14:58
Как в FastReport-е сформировать новую страницу _SERGEYX_ Компоненты Delphi 0 13.02.2009 11:26
Академические задачи по с++ (гдз) Сортировка и поиск совпадений по массиву Andrew#90 Общие вопросы C/C++ 2 10.01.2009 18:44