2012-04-04 130 views
38

我有一列Excel中有10000行的excel文件,其中一些值相同。Excel比较两列,发现时突出显示

实施例:

A1 - P7767 

A2 - P3443 

A3 - P7767 

A4 - P8746 

A5 - P9435 

等...

我然后具有与具有一些在列A中的值的100行另一列,

B1 - P7767 

B2 - P8746 

等。 。

我需要突出显示列A中的所有单元格,其中的任何值S IN B列

所以基本上B列检查,看它是否能够在A列中其他地方找到相同的值,如果为true的亮点当B列

我没有找到该小区留下任何细胞的白色值希望我已经解释了这一点,我已经做了一些研究,我相信我需要使用条件格式来获得这个结果,但我真的坚持使用的公式,似乎无法在网上找到一个例子(也许我不是在寻找正确的名词,因为我不知道这是什么确切称为)

回答

69

有可能是一个简单的选择,但你可以使用VLOOKUP来检查值出现在列表(VLOOKUP和是一个强大的公式得到认真处理反正)。

所以对于A1,你可以用下面的公式设置条件格式:

=NOT(ISNA(VLOOKUP(A1,$B:$B,1,FALSE))) 

复制和粘贴>格式来复制条件格式到其他单元格在列A

什么上述式是这样做的:

  • VLOOKUP抵靠整个塔B的查找单元格A1(第一个参数)的值($ B:$ B)所示,在第一列(这是第三参数,红在这里没有用,但通常VLOOKUP查找表而不是列)。最后一个参数FALSE指定匹配必须是精确的,而不仅仅是最接近的匹配。
  • VLOOKUP将返回#ISNA如果没有找到匹配的,所以NOT(ISNA(...))对于具有匹配B列的所有单元格,则返回true
+1

嗨大卫, 这工作完美,谢谢! 只是想多说一句谢谢你解释公式在做什么,这对我将来会有很多帮助。 亲切的问候, 凯尔 – Izion 2012-04-04 10:43:43

+2

我的荣幸。公平地说,我认为克里斯尼尔森的方法(已经提出)也可以工作,并且可能更优雅。 – David 2012-04-04 11:16:31

1

A1 - >条件格式 - >单元格值是B1 - >格式:无论你想

希望帮助

28

一个简单的公式是

=COUNTIF($B:$B,A1) 

指定的公式适用于单元格A1。只需复制和粘贴特殊 - 格式整列的

2

做到这一点,至少对我来说,最简单的方法是:

条件格式 - >添加新的基于规则>设置您自己的公式:

=ISNA(MATCH(A2;$B:$B;0)) 

其中A2是要比较的A列中的第一个元素,而B是A的元素将被搜索的列。

设置公式并选择了格式后,将此规则应用于列中的所有元素。

希望这有助于

0

不要瓦纳做洙多工作guyss .. 只需按点击率和选择科拉姆之一,按点击率和选择科拉姆两项。 然后单击条件格式 - >突出显示单元格规则 - >等于。

这就是它。你完成了。 :)

+0

这不是对问题的回答。 – 2013-03-20 01:17:04

1

我试图比较A-B列并突出显示相同的文本,但是使用某些文本完全不匹配的obove fomrulas。所以我使用表格(VBA macro to compare two columns and color highlight cell differences)代码,我修改了一些东西以适应我的应用程序,并找到任何需要的列(只需单击它)。就我而言,我在每列上使用大量不同数量的行。希望这有助于:

子ABTextCompare()

Dim Report As Worksheet 
Dim i, j, colNum, vMatch As Integer 
Dim lastRowA, lastRowB, lastRow, lastColumn As Integer 
Dim ColumnUsage As String 
Dim colA, colB, colC As String 
Dim A, B, C As Variant 

Set Report = Excel.ActiveSheet 
vMatch = 1 

'Select A and B Columns to compare 
On Error Resume Next 
Set A = Application.InputBox(Prompt:="Select column to compare", Title:="Column A", Type:=8) 
    If A Is Nothing Then Exit Sub 
colA = Split(A(1).Address(1, 0), "$")(0) 
Set B = Application.InputBox(Prompt:="Select column being searched", Title:="Column B", Type:=8) 
    If A Is Nothing Then Exit Sub 
    colB = Split(B(1).Address(1, 0), "$")(0) 
'Select Column to show results 
Set C = Application.InputBox("Select column to show results", "Results", Type:=8) 
    If C Is Nothing Then Exit Sub 
    colC = Split(C(1).Address(1, 0), "$")(0) 

'Get Last Row 
lastRowA = Report.Cells.Find("", Range(colA & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column A 
lastRowB = Report.Cells.Find("", Range(colB & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column B 

Application.ScreenUpdating = False 
'*************************************************** 
For i = 2 To lastRowA 
     For j = 2 To lastRowB 
      If Report.Cells(i, A.Column).Value <> "" Then 
       If InStr(1, Report.Cells(j, B.Column).Value, Report.Cells(i, A.Column).Value, vbTextCompare) > 0 Then 
        vMatch = vMatch + 1 
        Report.Cells(i, A.Column).Interior.ColorIndex = 35 'Light green background 
        Range(colC & 1).Value = "Items Found" 
        Report.Cells(i, A.Column).Copy Destination:=Range(colC & vMatch) 
        Exit For 
       Else 
        'Do Nothing 
       End If 
      End If 
     Next j 
    Next i 
If vMatch = 1 Then 
    MsgBox Prompt:="No Itmes Found", Buttons:=vbInformation 
End If 
'*************************************************** 
Application.ScreenUpdating = True 

末次

1

假设你要比较的列A和H列在同一个电子表格。

您需要转到这两列旁边的另一列并粘贴以下公式: =(Sheet1!A:A = Sheet1!H:H) 这将在列中显示FALSE或TRUE。因此,您可以使用这个新列来使用条件颜色格式化功能对不匹配的值进行着色。

2

注意:在执行这些步骤以防止出现误报之前,您可能需要删除重复项目(例如,同一列中的重复项目)。

  1. 选择两列
  2. 单击条件格式
  3. 点击突出显示单元格规则
  4. 点击重复值(默认值应该是OK)现在
  5. 重复以红色突出显示:

enter image description here

+0

这非常快速和简单(+1),但有一点需要注意:如果* same *列中有重复的数据,即使这些值不存在于另一列中,也会突出显示它们。这意味着可能会有一些误报。另一方面,如果同一列内没有重复数据,这似乎是最好的选择。当然,您可以删除同一列内的副本(选择列,数据 - >删除重复项),然后使用它来突出显示重复的单元格。 – 2017-09-26 14:02:21

相关问题