条件格式-突出显示“前3名”-重复出现问题

时间:2019-06-05 13:00:00

标签: excel vba excel-formula conditional-formatting

我在一列中有一组数据(数字)。我想要实现的是突出显示(直接在此列中)前3个值。如果没有重复项,但工作正常,但结果不正确(重复项被视为唯一值)。

我写了一个简单的函数(请在下面查看),但是它也不起作用。

Function isTop(cellTop As Range, rngTop As Range, noTop As Integer) As Boolean

'cellTop - cell to be checked
'rngTop - range to be considered
'noTop - nth top value

Dim iStartTop As Integer, noOccurTop As Integer, noTopUpdate As Integer

    For iStartTop = 1 To noTop

        If cellTop.Value = Application.WorksheetFunction.Large(rngTop, iStartTop) Then
            isTop = True
            Exit Function
        End If

    Next iStartTop

End Function

我们假设A列中有以下数据集(12个元素):

1
2
3
4
1
2
3
4
1
2
3
4

,我想突出显示前3个元素(通过使用条件格式和标准的前3个条件或函数= isTop(A1,A:A,3))。应用任何提供的方法后,将仅突出显示包含“ 4”的单元格。

但是,我希望突出显示“ 4”,“ 3”和“ 2”。如果给定列中存在重复项,是否可以解决此问题?

在此先感谢您的帮助。 最好的祝福, 卡米尔(Kamil)

1 个答案:

答案 0 :(得分:1)

所以这是您想要做的一种方法:

创建三个新的条件格式设置规则:

  1. 应用于范围$A:$A

    =$A1=MAX($A$1:$A$12)
    
  2. 应用于范围$A:$A

    =$A1=LARGE(($A$1:$A$12<MAX($A$1:$A$12))*($A$1:$A$12),1)
    
  3. 应用于范围$A:$A

    =$A1=LARGE(($A$1:$A$12<LARGE(($A$1:$A$12<MAX($A$1:$A$12))*($A$1:$A$12),1))*($A$1:$A$12),1)
    

enter image description here

您也可以走VBA路线,但这取决于您。