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

Сравнить данные на двух листах и недостающие во втором перенести на третий

31.07.2012, 10:19. Показов 5913. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток! Подскажите как можно реализовать.

Есть два столбца с данными. Первый хранится на листе 1, второй соответственно на 2. Как можно проверить есть ли данные из 1 столбца во втором и если каких то нет то "Тех которых нет" перенести допустим на лист проверка.

Заранее благодарен.

 Комментарий модератора 
Два Солбца - слишком красивое название для темы
Читаем правила
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2012, 10:19
Ответы с готовыми решениями:

Как перенести данные с двух файлов в третий?
Всем привет. есть 2 файла с данными. третий файл консолидирует данные из 2х файлов. Задача...

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

Необходимо связать данные в двух листах
Имеется таблица Excel. В ней два листа - продажа за день и список клиентов с их покупками.. В...

Перенести записи с двух массивов в третий
Помогите пожалйста))) Очень нужно) Можна идею подсказать как сделать задание, а то я не совсем...

7
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
31.07.2012, 10:29 2
Формула типа
Код
=ПОИСКПОЗ(A1;Лист2!A:A;)
, автофильтр по "не равно #Н/Д", копи-пасте.
Можно расширенным фильтром в одно действие.
1
3 / 3 / 1
Регистрация: 29.02.2012
Сообщений: 27
31.07.2012, 10:41  [ТС] 3
Спасибо. Вот только нужно макросом. Я просто на кнопку вешаю это действие.
0
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
31.07.2012, 10:52 4
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
36
37
38
39
40
41
42
43
' Макрос проверяет список с ячейки A2 и ниже до первой пустой строки на листе "Лист1"
' на наличие в спике начиная с ячейки A2 и ниже до первой пустой строки на листе "Лист2"
' при отсутствии на листе "Лист2" значение переносится на лист "проверка"
Sub CompareColumns()
    Dim i As Long, j As Long, k As Long, s1 As String, s2 As String, b As Boolean
    Dim src As Worksheet, dst As Worksheet, chk As Worksheet
    
    Set src = ThisWorkbook.Worksheets("Лист1")
    Set dst = ThisWorkbook.Worksheets("Лист2")
    Set chk = ThisWorkbook.Worksheets("проверка")
    
    i = 2
    k = 2
    s1 = src.Cells(i, 1).Value
    Do While Not s1 = ""
        
        b = True
        j = 2
        s2 = dst.Cells(j, 1).Value
        Do While s2 <> ""
            
            If s1 = s2 Then
                b = False
                Exit Do
            End If
            
            j = j + 1
            s2 = dst.Cells(j, 1).Value
        Loop
        
        If b Then
            chk.Cells(k, 1).Value = s1
            k = k + 1
        End If
        
        i = i + 1
        s1 = src.Cells(i, 1).Value
    Loop
    
    Set src = Nothing
    Set dst = Nothing
    Set chk = Nothing
End Sub
1
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
31.07.2012, 10:58 5
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub bb()
Dim a(), b(), c(), x, i&
a = Sheets("Лист2").UsedRange.Columns(1).Value
b = Sheets("Лист1").UsedRange.Columns(1).Value
ReDim c(1 To UBound(b), 1 To 1)
For Each x In b
    If IsError(Application.Match(x, a, 0)) Then i = i + 1: c(i, 1) = x
Next
Sheets("Проверка").Range("A1:A" & i).Value = c
End Sub
2
3 / 3 / 1
Регистрация: 29.02.2012
Сообщений: 27
31.07.2012, 17:03  [ТС] 6
Спасибо! А не подскажешь, если на листе присутствуют еще данные. Допустим там 3 столбца на каждом листе. UserRange не поможет. (( Как можно 2 столбец из 1 ст с 3 столбцом из 3 стр сравнить?
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
31.07.2012, 17:30 7
Почему не поможет? Например, значения 3-го столбца на листе "Лист2":
Visual Basic
1
a = Intersect(Sheets("Лист2").UsedRange, Sheets("Лист2").Columns(3)).Value
Область данных не обязана начинаться с А1.
1
3 / 3 / 1
Регистрация: 29.02.2012
Сообщений: 27
31.07.2012, 17:39  [ТС] 8
Спасибо! Помог.
0
31.07.2012, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2012, 17:39
Помогаю со студенческими работами здесь

Перенести записи из двух массивов в третий, исключив повторы
Заданы два массива записей, каждый из которых содержит сведения о фамилии и адрес. Составленная...

Сравнить значения двух массивов и вывести результат в третий массив
Добрый день программисты и те кто любит пощёлкать клавишами. Есть такая задача. Нужно написать...


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

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