如何在Excel中比较两个字符串的相似度或突出显示差异?


在本文中,我们将学习如何在excel中比较两个相邻字符串以识别差异或相似之处。本文解释了两种方法,如下所述。

使用公式比较两个字符串的相似之处。

使用VBA代码比较并突出显示两个字符串的相似之处或差异。

使用公式比较两个字符串的相似之处

步骤 1 - 如下所示,采用示例数据来比较两列的字符串。

步骤 2 - 现在,在“匹配结果”列中输入以下公式,并将其拖动到需要进行数据比较的最后一行,然后按回车键。

=EXACT(A2, B2)

注意 - 在公式中,A2和B2是比较字符串的单元格。FALSE结果表示比较的字符串不同,TRUE结果表示字符串相同。

公式语法描述

参数

描述

EXACT(text1, text2)

  • Text1 这是第一个字符串,需要与另一个字符串进行比较。

  • Text2 这是第二个字符串,需要与text1进行比较。

使用VBA代码比较并突出显示两个字符串的相似之处或差异

步骤 1 - 从键盘上按下Alt+F11键,将打开Microsoft Visual Basic for Applications窗口。

也可以使用“开发工具”选项卡打开上述编辑器,如下所示:

步骤 2 - 在Microsoft Visual Basic for Applications窗口中,双击“项目”面板中的ThisWorkbook。

步骤 3 - 现在复制下面的VBA代码,并将其输入到ThisWorkbook(代码)窗口中。

Sub highlight()
   Dim xRg1 As Range
   Dim xRg2 As Range
   Dim xTxt As String
   Dim xCell1 As Range
   Dim xCell2 As Range
   Dim I As Long
   Dim J As Integer
   Dim xLen As Integer
   Dim xDiffs As Boolean
   On Error Resume Next
   If ActiveWindow.RangeSelection.Count > 1 Then
     xTxt = ActiveWindow.RangeSelection.AddressLocal
   Else
     xTxt = ActiveSheet.UsedRange.AddressLocal
   End If
lOne:
   Set xRg1 = Application.InputBox("Range A:", "Kutools for Excel", xTxt, , , , , 8)
   If xRg1 Is Nothing Then Exit Sub
   If xRg1.Columns.Count > 1 Or xRg1.Areas.Count > 1 Then
      MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
      GoTo lOne
   End If
lTwo:
   Set xRg2 = Application.InputBox("Range B:", "Kutools for Excel", "", , , , , 8)
   If xRg2 Is Nothing Then Exit Sub
   If xRg2.Columns.Count > 1 Or xRg2.Areas.Count > 1 Then
      MsgBox "Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
      GoTo lTwo
   End If
   If xRg1.CountLarge <> xRg2.CountLarge Then
      MsgBox "Two selected ranges must have the same numbers of cells ", vbInformation, "Kutools for Excel"
      GoTo lTwo
   End If
   xDiffs = (MsgBox("Click Yes to highlight similarities, click No to highlight differences ", vbYesNo + vbQuestion, "Kutools for Excel") = vbNo)
   Application.ScreenUpdating = False
   xRg2.Font.ColorIndex = xlAutomatic
   For I = 1 To xRg1.Count
      Set xCell1 = xRg1.Cells(I)
      Set xCell2 = xRg2.Cells(I)
      If xCell1.Value2 = xCell2.Value2 Then
         If Not xDiffs Then xCell2.Font.Color = vbRed
      Else
         xLen = Len(xCell1.Value2)
         For J = 1 To xLen
            If Not xCell1.Characters(J, 1).Text = xCell2.Characters(J, 1).Text Then Exit For
         Next J
         If Not xDiffs Then
            If J <= Len(xCell2.Value2) And J > 1 Then
               xCell2.Characters(1, J - 1).Font.Color = vbRed
            End If
         Else
            If J <= Len(xCell2.Value2) Then
               xCell2.Characters(J, Len(xCell2.Value2) - J + 1).Font.Color = vbRed
            End If
         End If
      End If
   Next
   Application.ScreenUpdating = True
End Sub

步骤 4 - 输入代码后,按键盘上的Alt+Q键关闭Microsoft Visual Basic for Applications窗口。

步骤 5 - 接下来,将文件保存为“启用宏的工作簿”格式。

步骤 6 - 现在按下Alt+F8运行代码。将打开以下提示:

步骤 7 - 选择宏名称,然后单击“运行”。

步骤 8 - 将打开第一个“Kutools for Excel”对话框。在这里,选择需要比较的文本字符串的第一列,然后单击“确定”按钮。

步骤 9 - 接下来,将打开第二个“Kutools for Excel”对话框以选择第二列字符串,然后单击“确定”按钮。

步骤 10 - 之后,将打开一个新的“Kutools for Excel”对话框。在这里,如果要比较字符串的相似之处,则单击“是”,如果要突出显示字符串的差异,则在下面的屏幕截图中单击“否”。

步骤 11 - 如果选择“是”,则类似的字符串将如下所示突出显示。

步骤 12 - 如果选择“否”,则不同的字符串将如下所示突出显示。

结论

因此,我们学习了两种识别excel数据中不同和相似字符串的方法。请注意,VBA代码仅限于识别某些特殊字符。例如,它无法比较包含撇号和感叹号的字符串。

更新于:2022-12-29

5K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告