it-roy-ru.com

Условное форматирование ячеек, если их значение равно ЛЮБОМУ значению другого столбца

У меня есть данные в столбцах A и B. Данные столбца B в основном являются дубликатами данных A, но не всегда. Например:

A
Budapest
Prague
Paris
Bukarest
Moscow
Rome
New York

B
Budapest
Prague
Los Angeles
Bukarest

Мне нужно искать в столбце A, если там есть значения в B. Если строка соответствует, мне нужно изменить цвет фона строки в A на красный или что-то еще.

Какую функцию мне нужно использовать и как?

Извините, я новичок в Excel.

15
PeterInvincible

Вот формула

создать новое правило в условном форматировании на основе формулы. Используйте следующую формулу и примените ее к $ A: $ A

=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))


enter image description here

здесь пример листа для загрузки, если у вас возникли проблемы


ОБНОВИТЬ
Вот предложение @pnuts, которое также отлично работает:

=MATCH(A1,B:B,0)>0


30
Marcel

Никаких формул не требуется. Это работает на столько столбцов, сколько вам нужно, но сравнивает только столбцы на одном листе:

  1. Выберите столбцы для сравнения
  2. нажмите Условное форматирование
  3. щелкните «Выделить правила ячеек»
  4. нажмите Дублировать значения (значения по умолчанию должны быть в порядке)
  5. Дубликаты теперь выделены красным

    • Дополнительный совет: вы можете отфильтровать каждую строку по цвету, чтобы оставить уникальные значения в столбце или оставить только дубликаты.
4
KERR

Другое простое решение - использовать эту формулу в условном форматировании (применимо к столбцу A):

=COUNTIF(B:B,A1)

С уважением!

3
async3

Все, что вам нужно для этого сделать, - это простой цикл.
Это не относится к тестированию на несоответствие в нижнем и верхнем регистре . Если это не совсем то, что вы ищете, прокомментируйте, и я могу пересмотреть.

Если вы планируете изучать VBA. Это отличное начало.

ИСПЫТАНО:

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String

    sheetName = "Sheet1"            'Insert your sheet name here
    lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

    For lRow = 2 To lastRow         'Loop through all rows

        If Sheets(sheetName).Cells(lRow, "A") = Sheets(sheetName).Cells(lRow, "B") Then
            Sheets(sheetName).Cells(lRow, "A").Interior.ColorIndex = 3  'Set Color to RED
        End If

    Next lRow

End Sub

EXAMPLE

3
peege

Я смотрел на это и любил подход peege с использованием цикла for! (потому что я изучаю VBA в данный момент)

Однако, если мы пытаемся сопоставить «любое» значение другого столбца, как насчет использования вложенных циклов, подобных следующему?

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String


sheetName = "Sheet1"            'Insert your sheet name here
lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

For lRowA = 1 To lastRow         'Loop through all rows
    For lRowB = 1 To lastRow
        If Sheets(sheetName).Cells(lRowA, "A") = Sheets(sheetName).Cells(lRowB, "B") Then

        Sheets(sheetName).Cells(lRowA, "A").Interior.ColorIndex = 3  'Set Color to RED
    End If

Next lRowB
Next lRowA

End Sub
1
Damian Duran