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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 17:30   #1
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию Нужна помощь в поиске повторяющихся значений в Excel путем сравнения данных в двух столбцах

Добрый день!
Сравниваем столбец А со столбцом С с помощью макроса, после выполнения повторяющиеся значения размещаются в столбец В и напротив таких же значений из столбца А.

Sub Find_Matches()
Dim CompareRange As Variant, x As Variant, y As Variant
Set CompareRange = Range("C1:C5")
For Each x In Selection
For Each y In CompareRange
If x = y Then x.Offset(0, 1) = x
Next y
Next x
End Sub

Помогите пожалуйста сделать макрос, который переносит повторяющиеся значения в столбец D, и размещает против таких же значений столбца С.
Вложения
Тип файла: rar Книга1.rar (11.5 Кб, 11 просмотров)
andreton вне форума Ответить с цитированием
Старый 27.11.2015, 17:41   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub MoveA2D()
  Dim r As Long
  For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Not IsEmpty(Cells(r, 1)) Then
      If WorksheetFunction.CountIf(Columns(3), Cells(r, 1)) > 0 Then
        Cells(r, 4) = Cells(r, 1): Cells(r, 1).ClearContents
      End If
    End If
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.11.2015, 17:47   #3
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

IgorGO, спасибо.
Но немного не так. Этот скрипт переносит из А в D дубликаты, и размещает также как они были в А, а нужно напротив значений в С !
andreton вне форума Ответить с цитированием
Старый 27.11.2015, 17:54   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

извините, вот так исправьте:
Код:
      If WorksheetFunction.CountIf(Columns(3), Cells(r, 1)) > 0 Then
        Cells(WorksheetFunction.Match(Cells(r, 1), Columns(3), 0), 4) = Cells(r, 1): Cells(r, 1).ClearContents
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 27.11.2015 в 18:04.
IgorGO вне форума Ответить с цитированием
Старый 27.11.2015, 17:59   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

или вообще сделайте так:
Код:
Sub MoveA2D()
  Dim r As Long, fnd As Range
  For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Not IsEmpty(Cells(r, 1)) Then
      Set fnd = Columns(3).Find(Cells(r, 1), Cells(1, 3), xlValues, xlWhole)
      If Not fnd Is Nothing Then Cells(r, 1).ClearContents:  fnd.Offset(0, 1) = fnd
    End If
  Next
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.11.2015, 01:39   #6
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

доброго времени суток,Andreton,попробуйте еще такой макрос
кнопка yyy на листе Лист1 в файл-примере.

Код:
Sub yyy()
    Dim z(), z1(), i&, j&
    z = Range("A1:C" & Range("A" & Rows.Count).End(xlUp).Row).Value
    ReDim z1(1 To UBound(z), 1 To 1)
    With CreateObject("scripting.dictionary"): .comparemode = 1
        For i = 1 To UBound(z): .Item(z(i, 1)) = 0: Next
        For i = 1 To UBound(z)
        For j = 1 To UBound(z)
            If z(i, 1) = z(j, 3) And .exists(z(j, 3)) = True Then z1(j, 1) = z(j, 3)
        Next j, i
   Range("D1").Resize(UBound(z), 1) = z1
    End With
End Sub
Вложения
Тип файла: xls example_28_11_2015_pr.xls (42.0 Кб, 24 просмотров)
svsh2016 вне форума Ответить с цитированием
Старый 30.11.2015, 17:51   #7
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

Спасибо, IgorGO. Работает замечательно. К этому добавилась еще одна задача: между столбцами А и С есть пустой столбец В. Сюда вставляем два столбца с датой В и С(которые относятся к столбцу А). В столбик D цифры? с которыми нужно сравнить. Теперь данные из А полетят в Е. Нужно чтобы даты из В и С также полетели следом и расположились в F и G, помогите и с этим пожалуйста.
Вложения
Тип файла: rar Книга2.rar (13.7 Кб, 14 просмотров)
andreton вне форума Ответить с цитированием
Старый 30.11.2015, 17:54   #8
andreton
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 25
По умолчанию

Спасибо, svsh2016
andreton вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение значений в столбцах (Очень нужна помощь!) 123456678 Microsoft Office Excel 11 14.11.2014 11:59
скрипт для сравнения чисел в двух столбцах Olya1985 Microsoft Office Excel 8 02.01.2011 01:58
Excel -скрипт сравнения двух файлов и копирования данных из одного в другой Snake_ Microsoft Office Excel 11 29.08.2010 13:19
Нужна помощь по вставке изображения путем VBA ACCESS в файл EXCEL AlVBA Microsoft Office Access 2 18.05.2009 15:58
сравнение данных в двух столбцах в Excel 2003 grinders Microsoft Office Excel 4 25.11.2008 16:58