2012-04-04 4 views
38

У меня есть файл excel с 10 000 строк в столбце A. Некоторые значения одинаковы.Excel сравнить два столбца и выделить при обнаружении

Пример:

A1 - P7767 

A2 - P3443 

A3 - P7767 

A4 - P8746 

A5 - P9435 

и т.д. ...

Я тогда еще один столбец с 100 строками, которые имеют некоторые из значений, найденных в колонке А,

B1 - P7767 

B2 - P8746 

и т.д ..

Мне нужно выделить все ячейки в столбце A, где значение найдено в любом из значений s в колонке B

Так в основном столбце B проверяет, если он может найти то же самое значение в любом месте в столбце А, если верно выделить ячейку оставляя белых клеток, когда значение не найдено в колонке B

I надеюсь, что я это хорошо объяснил, я провел некоторое исследование, и я считаю, что мне нужно использовать условное форматирование, чтобы получить этот результат, но я действительно зацикливаюсь на формуле, которую я использую, и не могу найти пример в Интернете (возможно, я не ищу правильный термин, поскольку я не уверен, что именно это называется)

ответ

69

Там может быть более простой вариант, но вы можете использовать ВПР, чтобы проверить, если значение отображается в списке (и ВПР является мощная формула, чтобы справиться с так или иначе).

Так что для А1, вы можете задать условный формат, используя следующую формулу:

=NOT(ISNA(VLOOKUP(A1,$B:$B,1,FALSE))) 

Copy и Paste Special> Форматы для копирования, что условный формат для других ячеек в столбце A.

Что приведенная выше формула делает:

  • ВПР смотрит вверх значение ячейки A1 (первый параметр) против всего столбца B ($ B: $ B), в первой колонке (это 3-й параметр, красный здесь нет, но обычно VLOOKUP ищет таблицу, а не столбец). Последний параметр FALSE указывает, что совпадение должно быть точным, а не только самым близким совпадением.
  • ВПР вернется #ISNA, если совпадение не найдено, поэтому НЕ (ЕНД (...)) возвращает истину для всех ячеек, которые имеют матч в столбце B.
+1

Hi David, Это отлично работает, спасибо! Просто хотел сказать дополнительную благодарность за объяснение того, что делает эта формула, это будет большой помощью для меня в будущем. С уважением, Kyle – Izion

+2

Мое удовольствие. Справедливости ради, я думаю, что подход Криса Нильсена (поддержал его) также будет работать и, вероятно, более изящный. – David

1

A1 -> условное форматирование -> значение ячейки B1 -> формат: все, что вы хотите

надежда, что помогает

28

Простая формула для использования является

=COUNTIF($B:$B,A1) 

Формула, указанная для ячейки A1.Просто скопировать и вставить специальный - формат для всей колонки

2

Самый простой способ сделать это, по крайней мере, для меня, это:

Условный Формат-> Добавить rule-> Установить свою собственную формулу:

=ISNA(MATCH(A2;$B:$B;0)) 

Где A2 - первый элемент в столбце A, подлежащем сравнению, а B - столбец, в котором будет выполнен поиск элемента A.

Как только вы установили формулу и выбрали формат, примените это правило ко всем элементам в столбце.

Надеется, что это помогает

0

Не Вану сделать Су много работы guyss .. Просто нажмите Ctr и выберите Колум одну и нажмите Ctr и выберите Колум два. Затем нажмите условное форматирование -> Выделите правила ячейки -> Equel To.

и все. ваш сделанный. :)

+0

Это не ответ на вопрос, который задавали. –

1

Я пытался сравнить столбцы A-B и выделить одинаковый текст, но, используя пропущенные fomrulas, какой-то текст не совпал вообще. Поэтому я использовал форму (VBA macro to compare two columns and color highlight cell differences), и я изменил несколько вещей, чтобы адаптировать ее к моему приложению и найти любой желаемый столбец (просто щелкнув по нему). В моем случае я использую большое и различное количество строк для каждого столбца. Надеюсь, что это помогает:

Sub ABTextCompare()

Dim Report As Worksheet 
Dim i, j, colNum, vMatch As Integer 
Dim lastRowA, lastRowB, lastRow, lastColumn As Integer 
Dim ColumnUsage As String 
Dim colA, colB, colC As String 
Dim A, B, C As Variant 

Set Report = Excel.ActiveSheet 
vMatch = 1 

'Select A and B Columns to compare 
On Error Resume Next 
Set A = Application.InputBox(Prompt:="Select column to compare", Title:="Column A", Type:=8) 
    If A Is Nothing Then Exit Sub 
colA = Split(A(1).Address(1, 0), "$")(0) 
Set B = Application.InputBox(Prompt:="Select column being searched", Title:="Column B", Type:=8) 
    If A Is Nothing Then Exit Sub 
    colB = Split(B(1).Address(1, 0), "$")(0) 
'Select Column to show results 
Set C = Application.InputBox("Select column to show results", "Results", Type:=8) 
    If C Is Nothing Then Exit Sub 
    colC = Split(C(1).Address(1, 0), "$")(0) 

'Get Last Row 
lastRowA = Report.Cells.Find("", Range(colA & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column A 
lastRowB = Report.Cells.Find("", Range(colB & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column B 

Application.ScreenUpdating = False 
'*************************************************** 
For i = 2 To lastRowA 
     For j = 2 To lastRowB 
      If Report.Cells(i, A.Column).Value <> "" Then 
       If InStr(1, Report.Cells(j, B.Column).Value, Report.Cells(i, A.Column).Value, vbTextCompare) > 0 Then 
        vMatch = vMatch + 1 
        Report.Cells(i, A.Column).Interior.ColorIndex = 35 'Light green background 
        Range(colC & 1).Value = "Items Found" 
        Report.Cells(i, A.Column).Copy Destination:=Range(colC & vMatch) 
        Exit For 
       Else 
        'Do Nothing 
       End If 
      End If 
     Next j 
    Next i 
If vMatch = 1 Then 
    MsgBox Prompt:="No Itmes Found", Buttons:=vbInformation 
End If 
'*************************************************** 
Application.ScreenUpdating = True 

End Sub

1

Предположим, что вы хотите сравнить столбец А и столбца H в одной таблице.

Вам нужно пройти еще один столбец рядом с этими 2 колонки и вставьте эту формулу: = (! Лист1 A: = Лист1 H: H) это будет отображаться FALSE или TRUE, в столбце. Таким образом, вы можете использовать этот новый столбец для окраски несоответствующих значений с помощью функции условного форматирования цвета.

2

ПРИМЕЧАНИЕ. Перед выполнением этих действий вы можете удалить повторяющиеся элементы (например, дублировать записи в том же столбце), чтобы предотвратить ложные срабатывания.

  1. Выберите Обе колонки
  2. щелчок Условное форматирование
  3. щелчок Highlight Cells Правила
  4. кликах повторяющихся значений (по умолчанию должно быть нормально)
  5. Дубликаты сейчас подсвеченные красным:

enter image description here

+0

Это очень быстро и просто (+1), но есть одно предостережение: если есть дубликаты данных в * одинаковом * столбце, они будут выделять их, даже если эти значения отсутствуют в другом столбце. Это означает, что могут быть некоторые ложные срабатывания. Если, с другой стороны, нет дубликатов данных внутри одного столбца, это кажется лучшим выбором. И, конечно же, вы можете удалить дубликаты внутри одного столбца (выберите столбец «Данные -> Удалить дубликаты»), прежде чем использовать это, чтобы выделить дубликаты ячеек. –