如何通过重复组突出显示不同颜色的行?

问题描述 投票:0回答:3

如何按重复项组突出显示不同颜色的行?

我不关心使用哪种颜色,我只想要重复的行一种颜色,下一组重复另一种颜色。

enter image description here

例如,如果我想要'1s'绿色,'2s'蓝色等等。在我的专栏中它达到120。

谢谢。

excel excel-vba conditional-formatting vba
3个回答
2
投票

试试这个简单的代码,并根据您的需要进行修改。它非常自我解释,

Sub dupColors()
Dim i As Long, cIndex As Long
cIndex = 3
Cells(1, 1).Interior.ColorIndex = cIndex
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, 1) = Cells(i + 1, 1) Then
        Cells(i + 1, 1).Interior.ColorIndex = cIndex
    Else
        If Cells(i + 1, 1) <> "" Then
            cIndex = cIndex + 1
            Cells(i + 1, 1).Interior.ColorIndex = cIndex
        End If
    End If
Next i
End Sub

enter image description here


2
投票

Gowtham的解决方案仅针对数字并使用VBA。我有一个简单的解决方法,适用于任何类型的数据,不需要VBA。

我们可以使用另一个列,使用公式为所有重复项生成唯一值,并为该列使用“Conditional Formatting> Color Scales”。截图如下。

Color Scales

你可以使用的公式是

"=ROW(INDEX(A$2:A$12,MATCH(A2,A$2:A$12,0)))"

在上面的公式中,A $ 2:A $ 12是我们想要搜索重复项的范围。

该公式基本上搜索给定范围中重复值的第一个实例,并输入该第一个实例的行号。

P.S:在上面的公式中,范围“A $ 2:A $ 12”是固定范围,使用表中的上述公式更简单,因为表范围是动态的

使用Table的另一个好处是我们甚至可以对数据进行排序以将重复值组合在一起

=ROW(INDEX([Column1],MATCH(A2,[Column1],0)))

0
投票

Gowtham的答案很棒,如果没有他们,我不会想到下面的内容!我对独特的颜色分配有同样的需求,但是,我需要比colorindex提供的56种颜色更多的方差,所以我稍微修改了Gowtham的代码,通过使用RandBetween和RGB通过随机红色创建随机颜色来提供更多的可变性,蓝色和绿色值。

我将颜色范围保持在120和255之间,因为一些较低的值可能导致单元格太暗而无法读取,但您可以根据自己的喜好自定义。下面的代码肯定可以改进,因为我不是专家,但它能够获得所需的100多种颜色。

编辑:我将补充说,RGB值可能会重叠。我只需要为视觉辅助设置颜色代码;但如果您需要严格的唯一颜色值,此代码将无法保证。

Dim rCount, RandCol1, RandCol2, RandCol3, i As Long

rCount = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To rCount
        If Sheet1.Cells(i, 1) = Sheet1.Cells(i + 1, 1) Then
            Sheet1.Cells(i + 1, 1).Interior.Color = RGB(RandCol1, RandCol2, RandCol3)
        Else
            If Sheet1.Cells(i + 1, 1) <> "" Then
                RandCol1 = WorksheetFunction.RandBetween(120, 255)
                RandCol2 = WorksheetFunction.RandBetween(120, 255)
                RandCol3 = WorksheetFunction.RandBetween(120, 255)
                Sheet1.Cells(i + 1, 1).Interior.Color = RGB(RandCol1, RandCol2, RandCol3)
            End If
        End If
    Next i
© www.soinside.com 2019 - 2024. All rights reserved.