выделить дубликаты в одной строке Excel - PullRequest
0 голосов
/ 05 марта 2019

Я попытался найти это, но не смог найти именно то, что искал.Я хотел бы выделить дубликаты в листе Excel, но ТОЛЬКО в одной строке (не в одном и том же столбце или разных столбцах).

Мои данные выглядят примерно так:

    DOG_ID    SIRE_ID    DAM_ID
1    1234      4567       7890
2    1546      3454       3459
3    1349      1243       1203
4    1934      1934       1928
5    1935      1349       1935
6    4567      1349       1546

Итакдля моих данных я бы хотел выделить 1934 в строке 4, а 19 - в строке 5, но больше ничего не нужно выделять.Я знаю, что мне нужно использовать правило условного выделения, но я еще не нашел, какое из них работает.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Вы можете изменить и попробовать:

Option Explicit

Sub test()

    Dim LastRow As Long, LastColumn As Long, Row As Long, Times As Long, Column As Long
    Dim str As String
    Dim rng As Range

    With ThisWorkbook.Worksheets("Sheet1")

        'Find last row column A
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        'Find last column row 1 (with titles)
        LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
        'Loop rows
        For Row = 2 To LastRow
            'Loop columns
            For Column = 2 To LastColumn
                'Loop values
                str = .Cells(Row, Column).Value
                'Set range for each row
                Set rng = .Range(Cells(Row, 2), Cells(Row, LastColumn))
                'How many times value appears in row
                Times = Application.WorksheetFunction.CountIf(rng, str)
                'if appears more than one times
                If Times > 1 Then
                    .Range(Cells(Row, 2), Cells(Row, LastColumn)).Interior.Color = vbGreen
                End If

            Next Column

        Next Row

    End With

End Sub
0 голосов
/ 05 марта 2019

Условное форматирование для дубликатов по принципу «строка за строкой».

Хитрость в том, чтобы получить правильные абсолютные и относительные адресации.

  1. Выберите диапазон ячеек (строк и столбцов), начиная с верхней левой ячейки.
  2. Home вкладка, Conditional Formatting, New Rule, Use Formula to determine...
  3. Выберите Format, выберите необходимое условное форматирование.Нажмите OK
  4. Изменить Format Values where this formula is true: до =COUNTIF($B2:$E2,B2)>1
    • $B2:$E2 - строка, содержащая верхнюю левую ячейку выделения.
      В номерах строк используется нотация относительного адреса, а в столбцах - абсолютная нотация. *
    • B2 - верхняя левая ячейка (первая ячейка, выбранная в диапазоне). Обозначение относительного адреса

NB Текстовые значения в диапазоне, содержащем * или ?, вызовут шаблон countifсоответствия.Матричные совпадения также будут отмечены как дубликаты.

Средство форматирования может использоваться для расширения этого условного форматирования.

* Для условного форматирования дубликатов столбцов поменяйте местами обозначения относительного / абсолютного адреса в диапазоне столбцов Countif.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...