我经常处理跨越多列的数据,需要一种方便的方法来突出显示特定列中包含相同值的多行,但我需要在突出显示和非突出显示之间切换。
例如,我在列A中有几行数据,如:
700105862
700105862
700105862
700103235
700103235
700108783
700108783
700108783
我想要做的是突出显示前三行(700105862),然后不突出显示700103235,然后再次突出显示700108783。 我想知道是否有一个条件格式化公式,使这成为可能。
非常感谢任何帮助!
谢谢,
答案 0 :(得分:0)
当然,如果您知道要突出显示的范围,只需将条件格式设置为x和y值之间。用你没有得到的东西评论这个问题,我会相应地修改答案。
答案 1 :(得分:0)
如果您的号码被分成总是不同数字重复的块,那么您可以使用此VBA代码:
Sub main()
Dim item As Variant
Dim startRow As Long
Dim okHighlight As Boolean
With Range("A1", Cells(Rows.count, 1).End(xlUp))
For Each item In GetUniqueValues(.Cells).Items
If okHighlight Then .Range(.Cells(startRow, 1), .Cells(item, 1)).Interior.ColorIndex = 48
startRow = item + 1
okHighlight = Not okHighlight
Next
End With
End Sub
Function GetUniqueValues(rng As Range) As Dictionary
Dim cell As Range
Dim dict As Dictionary
Set dict = New Dictionary
With dict
For Each cell In rng
.item(cell.Value) = cell.row - rng.Rows(1).row + 1
Next
End With
Set GetUniqueValues = dict
End Function
使用帮助列可以条件格式化方法
假设:
您的数据位于A列,从第2行开始
B栏是免费的
然后:
在 helper 列B单元格中编写以下公式:
=IF(A2<>A1,B1+1,0)
使用以下公式将条件格式应用于A列:
=INT(B2/2)=B2/2
并选择您想要突出显示单元格的格式