Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
1

В excel сравнить столбцы и записать совпадения в другой столбец

10.06.2014, 10:44. Показов 2056. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня!
есть код VB который сравнивает столбцы А (ФИО) и В (ФИО), если есть совпадения записывает значение А (ФИО) в столбец С - это все работает!!!
НО есть столбец D (телефоны) которые связаны с А (ФИО)

как сделать так чтоб при совпадении A и В выходили А(ФИО) + D (телефоны)?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Dim lLastRowA As Long
    Dim lLastRowC As Long
    Dim i As Long
    Dim rFind As Excel.Range
    
        lLastRowA = Cells(Rows.Count, "A").End(xlUp).Row
    
       lLastRowC = Cells(Rows.Count, "C").End(xlUp).Row ' + 1
    
        Application.ScreenUpdating = False
    
        For i = 2 To lLastRowA Step 1
           
               Set rFind = Columns("B").Find(What:=Cells(i, "A").Text, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
            
        'Если есть результат поиска (т.е. есть совпадение),
        'то записываем данные из столбца A в свободную строку столбца C.
        If Not rFind Is Nothing Then
            Cells(lLastRowC, "C").Value = Cells(i, "A")
                       
            'Записываем в переменную lLastRowC номер строки,
            'в которую нужно вставить следующие данные.
            lLastRowC = lLastRowC + 1
            
                    
        End If
            
    Next i
    
    
    'Включение обновления монитора.
    Application.ScreenUpdating = True
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2014, 10:44
Ответы с готовыми решениями:

Сравнить строку из одной таблицы со строками другой, удалить ее из обеих таблиц при обнаружении совпадения
Здравствуйте, выгружаю отчёт, макросом разделяю его на 2 листа( 2-е таблицы). нужно проверить...

Сравнить столбцы и записать уникальные значения при совпадении
Здравствуйте. Помогите пожалуйста. Необходимо, сравнить данные из столбца 1 со столбцом 6. Если...

Два одномерных массива записать в разные столбцы в excel
Облазил кучу форумов, и даже англоязычных, но так и не нашел решение проблемы. Задача такая, у...

Записать в другой массив столбец из сумм строк матрицы
Дана матрица n x m . записать в другой массив столбец , состоящий из сумм элементов строк матрицы....

5
17 / 17 / 6
Регистрация: 19.05.2014
Сообщений: 67
10.06.2014, 11:59 2
Поменять (или дополнить) строку Cells(lLastRowC, "C").Value = Cells(i, "A")
на Cells(lLastRowC, "C").Value = Cells(i, "A") & " " & Cells(i, "D")
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 11:59 3
Нашли ФИО - проверили совпадают ли телефоны. Если совпали - ОК, если нет - findnext.
Может кто неленивый файл нарисует - тогда можно и над коррекцией кода подумать...

P.S. если я вообще понял правильно задачу - без примера....
0
17 / 17 / 6
Регистрация: 19.05.2014
Сообщений: 67
10.06.2014, 12:25 4
нормально рабочий код. Не хватает лишь добавить данные со столбца D в столбец С (наряду с данными со столбца А).

говорю же, просто поменять отрезок на:
Visual Basic
1
2
If Not rFind Is Nothing Then
            Cells(lLastRowC, "C").Value = Cells(i, "A") & " " & Cells(i, "D")
1
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
10.06.2014, 12:38 5
Я понял иначе - что мало найти фамилию, нужно чтоб ещё и телефоны совпадали. Ну да ладно... Видать не больно то нужно решение.
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 10
10.06.2014, 13:41  [ТС] 6
Спасибо за ответы! Не хватает времени проверить код
как только проверю так сразу напишу

Добавлено через 31 минуту
работает!
мне оказывается нужно было вот так, т.е. вставлять в след столбец
Visual Basic
1
2
Cells(lLastRowC, "C").Value = Cells(i, "A") 
Cells(lLastRowC, "E").Value = Cells(i, "D")
0
10.06.2014, 13:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 13:41
Помогаю со студенческими работами здесь

Из файла excel получить столбец и записать в xml/txt после каждого определенного слова
В общем нужно достать из excel один столбец с названием stolb, и каждое последующие значение...

Сравнить столбцы таблицы одной книги со столбцами таблицы другой книги
Здравствуйте! такая проблемка... недавно только работаю с Basic, необходимо решить задачу, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru