我尝试搜索此内容,但找不到我要找的东西。我想在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年,但其他任何内容都不应突出显示。我知道我需要使用条件突出显示规则,但尚未完全找到哪个可行的规则。
答案 0 :(得分:1)
诀窍是使绝对和相对寻址引用正确。
Home
标签, Conditional Formatting
, New Rule
, {{1} } Use Formula to determine...
,然后选择所需的条件格式。点击 Format
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