46

我在 A 列中有一个 10,000 行的 excel 文件,其中一些值是相同的。

例子:

A1 - P7767

A2 - P3443

A3 - P7767

A4 - P8746

A5 - P9435

ETC...

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

B1 - P7767

B2 - P8746

ETC...

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

所以基本上B列检查它是否可以在A列的任何地方找到相同的值,如果在B列中找不到值时突出显示单元格,则将任何单元格留白

我希望我已经很好地解释了这一点,我做了一些研究,我相信我需要使用条件格式来获得这个结果,但我真的被困在要使用的公式上,似乎无法在网上找到一个例子(也许我没有在搜索正确的术语,因为我不确定这到底是什么)

4

8 回答 8

76

可能有一个更简单的选项,但您可以使用 VLOOKUP 来检查一个值是否出现在列表中(并且 VLOOKUP 是一个强大的公式,无论如何都可以掌握)。

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

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

复制并选择性粘贴 > 格式以将该条件格式复制到 A 列中的其他单元格。

上面的公式在做什么:

  • VLOOKUP 在第一列(即第三个参数,这里是多余的,但通常 VLOOKUP 查找表而不是柱子)。最后一个参数 FALSE 指定匹配必须是精确的,而不仅仅是最接近的匹配。
  • 如果未找到匹配项,VLOOKUP 将返回 #ISNA,因此对于在 B 列中匹配的所有单元格,NOT(ISNA(...)) 将返回 true。
于 2012-04-04T10:32:53.533 回答
30

一个简单的公式是

=COUNTIF($B:$B,A1)

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

于 2012-04-04T10:39:59.490 回答
6

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

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

在此处输入图像描述

在此处输入图像描述

于 2017-07-14T00:27:52.953 回答
4

至少对我来说,最简单的方法是:

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

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

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

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

希望这可以帮助

于 2013-01-30T12:12:02.240 回答
2

A1 --> 条件格式 --> 单元格值为 B1 --> 格式:随便你

希望有帮助

于 2012-04-04T09:53:13.343 回答
2

假设您要比较同一电子表格中的 A 列和 H 列。

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

于 2016-01-12T15:58:27.220 回答
1

我试图比较 AB 列并突出显示相同的文本,但是使用上面的 fomrulas 一些文本根本不匹配。因此,我使用表单(VBA 宏来比较两列和颜色突出显示单元格差异)代码,并修改了一些内容以使其适应我的应用程序并找到任何所需的列(只需单击它)。就我而言,我在每一列上使用大量不同数量的行。希望这可以帮助:

子 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

结束子

于 2013-04-03T16:48:43.990 回答
-2

不要做太多工作,伙计们。只需按 Ctr 并选择第一列,然后按 Ctr 并选择第二列。然后单击条件格式 -> 突出显示单元格规则 -> Equel To。

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

于 2013-03-19T23:37:17.610 回答