在同一行Excel中突出显示重复项

时间:2019-03-05 00:38:32

标签: excel

我尝试搜索此内容,但找不到我要找的东西。我想在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

因此,对于我的数据,我希望在第4行中突出显示1934年,在第5行中突出显示1935年,但其他任何内容都不应突出显示。我知道我需要使用条件突出显示规则,但尚未完全找到哪个可行的规则。

2 个答案:

答案 0 :(得分:1)

逐行重复的条件格式。

诀窍是使绝对和相对寻址引用正确。

  1. 从左上角的单元格开始选择单元格的范围(行和列)。
  2. Home 标签, Conditional Formatting New Rule {{1} }
  3. 选择 Use Formula to determine... ,然后选择所需的条件格式。点击 Format
  4. OK 编辑为 Format Values where this formula is true:
    • =COUNTIF($B2:$E2,B2)>1 是包含所选内容的左上角单元格的行。
      行号使用相对地址表示法,列使用绝对地址表示法。 *
    • $B2:$E2 是左上角的单元格(范围内选择的第一个单元格)。 相对地址符号

NB 。包含B2*的范围内的文本值将调用?模式匹配。模式匹配项也将被标记为重复项。

可以使用Format Painter扩展此条件格式。

*对于列复制条件格式,请在countif列范围中反转相对/绝对地址表示法。

答案 1 :(得分:0)

您可以修改并尝试:

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