簡體   English   中英

Excel 比較兩列並突出顯示重復項

[英]Excel compare two columns and highlight duplicates

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

例子:

A1 - P7767

A2 - P3443

A3 - P7767

A4 - P8746

A5 - P9435

ETC...

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

B1 - P7767

B2 - P8746

ETC...

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

所以基本上 B 列檢查它是否可以在 A 列中的任何位置找到相同的值,如果為真,則突出顯示該單元格,當在 B 列中找不到該值時,將所有單元格留白

我希望我解釋得很好,我做了一些研究,我相信我需要使用條件格式來獲得這個結果,但我真的堅持要使用的公式並且似乎無法在網上找到示例(也許我不是在搜索正確的術語,因為我不確定這到底叫什么)

可能有一個更簡單的選項,但您可以使用 VLOOKUP 檢查值是否出現在列表中(並且 VLOOKUP 是一個強大的公式,無論如何都要掌握)。

因此對於 A1,您可以使用以下公式設置條件格式:

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

Copy and Paste Special > Formats 將該條件格式復制到 A 列中的其他單元格。

上面的公式在做什么:

  • VLOOKUP 在第一列中查找單元格 A1(第一個參數)對整個 B 列($B:$B)的值(這是第三個參數,這里是多余的,但通常 VLOOKUP 查找表而不是柱子)。 最后一個參數 FALSE 指定匹配必須是精確的,而不僅僅是最接近的匹配。
  • 如果未找到匹配項,VLOOKUP 將返回 #ISNA,因此 NOT(ISNA(...)) 對 B 列中具有匹配項的所有單元格返回 true。

一個簡單的公式是

=COUNTIF($B:$B,A1)

指定的公式適用於單元格 A1。 只需將特殊格式復制並粘貼到整個 A 列

注意:您可能希望在執行這些步驟之前刪除重復項(例如同一列中的重復條目)以防止誤報。

  1. Select 兩列
  2. 單擊條件格式
  3. 單擊突出顯示單元格規則
  4. 單擊重復值(默認值應該沒問題)
  5. 重復項現在以紅色突出顯示:

在此處輸入圖像描述

在此處輸入圖像描述

至少對我來說,最簡單的方法是:

條件格式-> 添加新規則-> 設置您自己的公式:

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

其中 A2 是要比較的 A 列中的第一個元素,B 是將在其中搜索 A 的元素的列。

設置公式並選擇格式后,將此規則應用於列中的所有元素。

希望這可以幫助

A1 --> 條件格式 --> 單元格值為 B1 --> 格式:隨便你

希望有幫助

假設您要比較同一電子表格中的 A 列和 H 列。

您需要 go 這 2 列旁邊的另一列並粘貼此公式:=(Sheet1:A:A=Sheet1.HH) 這將在列中顯示 FALSE 或 TRUE。 因此,您可以使用此新列使用條件顏色格式設置功能為不匹配的值着色。

我試圖比較 AB 列並突出顯示相同的文本,但是使用上面的公式有些文本根本不匹配。 所以我使用表單( 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

結束子

伙計們,不要做太多工作。只需按 Ctr 和 select 第一列,然后按 Ctr 和 select 第二列。 然后單擊條件格式 -> 突出顯示單元格規則 -> Equel To。

就是這樣。 你完成了。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM