2014-01-24 5 views
1

У меня есть несколько специфическая задача, которую я пытаюсь выполнить в Excel, который, как представляется, находится за пределами моей глубины. У меня есть набор данных с двумя списками пять слов в каждой строке/наблюдения, как в этом примере:Сравнение двух наборов ячеек в строке и выделение дубликатов одинаковой строки в Excel

http://i.imgur.com/YVge8AB.png?1

Что я надеюсь достигнуть, чтобы выделить все слова, которые в обоих 5 в одном ряду. Количество перекрытий между этими двумя списками из пяти слов варьируется от одной строки к другой. И меня не интересует идентификация повторяющихся записей в разных строках. То есть, было бы здорово, если это возможно, чтобы создать макрос, который дал бы это:

http://i.imgur.com/3w2nfvD.png?1

Я искал совсем немного на этом сайте и с помощью Google, чтобы выяснить, как создать макрос сделать это. Я нашел несколько подобных макросов, но каждый, который я нашел, ориентирован на идентификацию всех дубликатов между двумя целыми листами или двумя целыми столбцами или что-то подобное, что не совсем соответствует тому, что я пытаясь сделать. Основываясь на макросах, которые мне удалось найти, я понял, что делать то, что я хочу, должно быть возможно, но я не знаю достаточно о визуальных базовых для редактирования макросов, которые я нашел в соответствии с моими потребностями.

Если вы можете запрограммировать макрос, чтобы это сделать, это спасло бы меня довольно много времени, поскольку в противном случае я смотрю на эту двойную идентификацию вручную для двух текущих наборов данных, которые у меня есть (каждый с 150 -200 наблюдений), плюс я планирую собирать данные в будущем, которые потребуют этой же процедуры. Кроме того, любой макрос, способный помочь мне здесь, может помочь другим с подобными потребностями.

Заранее благодарим за любую помощь, которую вы можете предоставить!

+0

Вы использовали условное форматирование? –

ответ

0

Попробуйте условное форматирование.

Выберите «таблица 2» (например, I2: Mn, где n - последняя строка), где I2 (верхний левый угол) является активной ячейкой. Затем используйте эту формулу:

=OR(I2=$C2:$G2) 
+0

Это сработало отлично - оно достигло именно того, что я хотел. Большое спасибо за вашу помощь, Рон! – user3232971

0

Я думаю, что с помощью Conditional Formatting, может быть, более простое решение, но один из способов сделать это с помощью VBA выглядит следующим образом:

Sub HighlightDuplicates() 
    Dim masterList(), highlightList(), rw As Long, col As Long 

    masterList = Range("C1:G150") 
    highlightList = Range("I1:M150") 

    For rw = 1 To UBound(masterList, 1) 
     For col = 1 To UBound(masterList, 2) 
      If highlightList(rw, col) = masterList(rw, col) Then 
       Cells(rw, col).Offset(0, 8).Interior.Color = vbRed 
      End If 
     Next col 
    Next rw 
End Sub 

Здесь мы читаем оба списка в виде массивов, а затем перебирать их для проверки совпадений.

Offset(0, 8) - это немного волшебное число (yikes!), который получает правильную ячейку, выделенную на основе вашего макета.

+0

Спасибо за помощь, Алекс! Условное форматирование действительно оказалось легким решением. По какой-то причине я не смог заставить этот сценарий VBA добиться такого же эффекта: когда я его запустил, это привело к следующему: http://i.imgur.com/Lk5CLk0.png. Это может быть очень хорошо, я делаю неправильно, но, видя, что я смог выполнить свою задачу, используя условное форматирование, дело не в этом. Еще раз спасибо! – user3232971

+0

Хороший материал. Я думаю, у вас есть самое простое решение, которое отлично. –