Connie在B列的每个单元格中都有一个包含公司名称的工作表。它们被分组在A列中的区域标题(东北,西部等)下。她想对公司名称应用条件格式,以便如果一个名称出现在多个区域中,则使用背景或文字显示使匹配的公司容易找到的颜色。这意味着,如果一个公司的格式设置为红色,则其他公司均不应显示为红色(它应显示为其他颜色,例如蓝色或绿色)。 Connie不确定如何设置它,甚至不确定是否可以使用条件格式设置。

有一种使用条件格式标记重复项的方法;只需遵循以下一般步骤:

。选择包含您的公司名称的单元格。

。显示功能区的“主页”选项卡,然后在“样式”组中单击“条件格式”工具。

。选择新规则。 Excel将显示“新格式设置规则”对话框。

。单击对话框顶部的仅格式化唯一值或重复值格式。

。确保在对话框的下半部分的下拉列表中选择了“重复”。 (请参见图1。)

。单击格式按钮,然后更改格式以反映您希望重复的公司名称出现的方式。

。单击“确定”关闭“新建格式规则”对话框。

此时,所有重复项都应与您在步骤6中选择的格式匹配。唯一的问题是,所有重复项的格式都相同。换句话说,如果您有两家公司(ABC公司和DEF公司),并且这些公司有重复项,则它们的格式都相同-两家公司不会看到不同的格式。

当然,您可以轻松地使用Excel的筛选功能来选择重复的公司,非重复的公司或单个公司名称。这可能是“零入”要定位的公司的最简单方法。

使用条件格式将不同的颜色应用于不同组的重复公司名称的唯一方法是,您必须预先识别实际的重复项。有了该列表,您可以创建一系列条件格式化规则,这些规则使用类似于以下内容的公式:

=AND(ISNUMBER(FIND("ABC Company",B1)),COUNTIF($B$1:$B$99,"ABC Company")>1)

在此公式中,“ ABC Company”是公司名称,B1是该范围的第一个单元格,而B1:B99是整个单元格范围。对于每个格式设置规则,您可以应用适合该特定公司的不同格式设置。这意味着如果您预先知道有24个不同的公司名称重复,那么您将需要设置24个条件格式设置规则来处理这24个名称。

确实如此。不幸的是,没有使用条件格式的简单方法。但是,您可以放弃条件格式,并使用宏使您的重复项脱颖而出。我们可以想到的最简单的“自动”宏(您无需提前知道重复的名称)是检查一系列单元格并根据重复的公司名称设置内部单元格颜色的宏。

Sub ColorCompanyDuplicates()

Dim x As Integer     Dim y As Integer     Dim lRows As Long     Dim lColNum As Long     Dim iColor As Integer     Dim iDupes As Integer     Dim bFlag As Boolean

lRows = Selection.Rows.Count     lColNum = Selection.Column     iColor = 2

For x = 2 To lRows         bFlag = False         For y = 2 To x - 1             If Cells(y, lColNum) = Cells(x, lColNum) Then                 bFlag = True                 Exit For             End If         Next y         If Not bFlag Then             iDupes = 0             For y = x + 1 To lRows                 If Cells(y, lColNum) = Cells(x, lColNum) Then                     iDupes = iDupes + 1                 End If             Next y             If iDupes > 0 Then                 iColor = iColor + 1                 If iColor > 56 Then                     MsgBox "Too many duplicate companies!", vbCritical                     Exit Sub                 End If                 Cells(x, lColNum).Interior.ColorIndex = iColor                 For y = x + 1 To lRows                     If Cells(y, lColNum) = Cells(x, lColNum) Then                         Cells(y, lColNum).Interior.ColorIndex = iColor                     End If                 Next y             End If         End If     Next x End Sub

要使用该宏,只需选择包含公司名称的单元格,然后运行它。宏使三个通过单元格。第一遍从当前正在检查的单元格向后看;用于确定是否存在“向后”

重复,因为如果没有,则不需要对该特定单元格进行进一步处理。第二遍通过单元格向前看,以确定是否与当前公司名称重复。如果存在,则第三遍将增加单元格颜色值,然后将其应用于重复项。

请注意,该宏会设置其找到的所有重复项的ColorIndex属性,并且在找到一组新的重复公司名称时,它会递增用于设置该属性的变量。对于所有没有重复的公司名称,单元格的ColorIndex属性不会更改。这意味着可以标记的公司数目是有限制的-ColorIndex的范围只能在0到56之间。宏实际分配的值的范围是3到56,因此只能格式化54个公司分组。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12673)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。