条件格式化单元格,如果它们的值等于另一列的任何值

问题描述 投票:16回答:6

我在AB列中有数据。 B专栏的数据大多是A数据的重复数据,但并非总是如此。例如:

A
Budapest
Prague
Paris
Bukarest
Moscow
Rome
New York

B
Budapest
Prague
Los Angeles
Bukarest

我需要在A列中搜索B中的值。如果一行匹配,我需要将A中行的背景颜色更改为红色或其他东西。

excel excel-vba excel-formula excel-2010 conditional-formatting vba
6个回答
30
投票

这是公式

基于公式在条件格式中创建新规则。使用以下公式并将其应用于$ A:$ A.

=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))

这是the example sheet to download if you encounter problems


UPDATE 这里是@pnuts的建议也很完美:

=MATCH(A1,B:B,0)>0


6
投票

不需要公式。这适用于您需要的任意数量的列,但只会比较同一工作表中的列:

  1. 选择要比较的列
  2. 单击“条件格式”
  3. 单击突出显示单元格规则
  4. 单击“重复值”(默认值应该没问题)
  5. 重复项现在以红色突出显示 奖金提示,您可以按颜色过滤每一行,以便在列中保留唯一值,或只留下重复项。

4
投票

另一个更简单的解决方案是在条件格式中使用此公式(适用于A列):

=COUNTIF(B:B,A1)

问候!


3
投票

你需要做的只是一个简单的循环。 这不适用于小写,大写不匹配的测试。如果这不是你想要的,评论,我可以修改。

如果您打算学习VBA。这是一个很好的开始。

测试:

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String

    sheetName = "Sheet1"            'Insert your sheet name here
    lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

    For lRow = 2 To lastRow         'Loop through all rows

        If Sheets(sheetName).Cells(lRow, "A") = Sheets(sheetName).Cells(lRow, "B") Then
            Sheets(sheetName).Cells(lRow, "A").Interior.ColorIndex = 3  'Set Color to RED
        End If

    Next lRow

End Sub


1
投票

我正在研究这个并且喜欢使用for循环的peege方法! (因为我现在正在学习VBA)

但是,如果我们尝试匹配另一列的“任何”值,那么如何使用嵌套循环如下?

Sub MatchAndColor()

Dim lastRow As Long
Dim sheetName As String


sheetName = "Sheet1"            'Insert your sheet name here
lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

For lRowA = 1 To lastRow         'Loop through all rows
    For lRowB = 1 To lastRow
        If Sheets(sheetName).Cells(lRowA, "A") = Sheets(sheetName).Cells(lRowB, "B") Then

        Sheets(sheetName).Cells(lRowA, "A").Interior.ColorIndex = 3  'Set Color to RED
    End If

Next lRowB
Next lRowA

End Sub

0
投票

我无法对最佳答案发表评论,但Excel实际上允许您在不添加丑陋条件逻辑的情况下执行此操作。

条件格式自动应用于任何非错误的输入,因此您可以实现与以下相同的效果:

=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))

有了这个:

= MATCH(A1,$B$1:$B$1000,0)))

如果以上内容适用于您的数据,A1将被格式化,如果它匹配$ B $ 1中的任何单元格:$ B $ 1000,因为任何非匹配将返回错误。

© www.soinside.com 2019 - 2024. All rights reserved.