Excel比较两列并在find时突出显示

我有一个Excel列10000行的Excel文件有些值是相同的。

例:

A1 - P7767 A2 - P3443 A3 - P7767 A4 - P8746 A5 - P9435 

等等…

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

 B1 - P7767 B2 - P8746 

等等…

我需要突出显示列A中的所有单元格,其中列B中的任何值都可以find该值

因此,基本上B列检查是否可以在列A中的任何位置find相同的值,如果在列B中未find值

我希望我已经解释了这一点,我已经做了一些研究,我相信我需要使用条件格式来获得这个结果,但我真的坚持使用公式,似乎无法find一个例子在线(也许我不是在寻找正确的名词,因为我不确定这是什么确切的称呼)

可能有一个更简单的选项,但你可以使用VLOOKUP来检查一个值是否出现在一个列表中(而VLOOKUP是一个强大的公式来处理反正)。

因此,对于A1,可以使用以下公式设置条件格式:

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

复制并粘贴特殊>格式以将该条件格式复制到列A中的其他单元格

上面的公式是做什么的:

  • VLOOKUP正在查找单元格A1(第一个参数)对整个列B($ B:$ B)的值,在第一列(这是第三个参数,在这里是冗余的,但是通常VLOOKUP查找表格而不是柱)。 最后一个参数FALSE指定匹配必须精确,而不仅仅是最接近的匹配。
  • 如果找不到匹配项,VLOOKUP将返回#ISNA,所以NOT(ISNA(…))对B列中所有匹配的单元格都返回true。

一个简单的公式是使用

 =COUNTIF($B:$B,A1) 

指定的公式适用于单元格A1。 只需将特殊格式复制并粘贴到整个A列

最简单的方法,至less对我来说是这样的:

条件格式 – >添加新规则 – >设置你自己的公式:

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

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

一旦你设置了公式并select了格式,将这个规则应用到列中的所有元素。

希望这可以帮助

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

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

在这里输入图像说明

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

希望有所帮助

我试图比较AB列和突出显示相同的文本,但是使用一些文本不符合所有的obove fomrulas。 所以我使用窗体( VBAmacros来比较两列和颜色突出显示单元格差异 )代码,我修改了一些东西,以适应我的应用程序,并find任何所需的列(只需点击它)。 在我的情况下,我在每一列使用大量不同数量的行。 希望这可以帮助:

Sub 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 

结束小组

假设您想在同一电子表格中比较列A和列H.

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

不要做太多的工作guyss ..只要按Ctr并selectColum一,按Ctr并select列二。 然后点击条件格式 – >突出显示单元格规则 – >等于。

这就是它。 你完成了。 🙂