如何从两个具有相同格式的excelsheets中找出不同的单元格

时间:2016-04-21 02:51:18

标签: excel

我有两个excel文件,每个文件有1553行和40列。它们具有相同的列名,应该相同。但似乎存在一些差异。我想知道是否有一些代码可以检测并突出显示/汇总(哪一行/列)不同的单元格。

3 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点

  • 您可以使用IF(cell1=cell2,"","Not Matching")
  • 等IF公式
  • 您还可以使用条件格式来匹配两个范围和颜色不同:选择第一个范围并转到条件格式 - >新规则 - >仅格式化包含并选择“单元格值”和“不等于”的单元格 - >然后在另一个工作表中选择下一个范围的起始单元格(注意:请从单元格中删除引用,即$)并填充任何颜色不匹配的价值。

答案 1 :(得分:0)

Excel有一个加载项,用于比较名为"查询"的文件。可能值得一试。请注意,有版本要求。

功能说明: https://support.office.com/en-us/article/What-you-can-do-with-Spreadsheet-Inquire-ebaf3d62-2af5-4cb1-af7d-e958cc5fad42

如何启用它: https://support.office.com/en-us/article/Turn-on-the-Inquire-add-in-6bc668e2-f3c6-4729-8ce1-75ea20aa9d90

答案 2 :(得分:0)

我刚刚编写了这段代码来查找不匹配的单元格并为您突出显示每个单元格。您需要使用适当的工作表名称更改Sheet1和Sheet2,然后确保行和列计数以正确的数字开头和结尾。希望有所帮助!

Sub comparison()

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim CellValuews1 As Variant
Dim CellValuews2 As Variant
Dim ErrorCount As Integer

Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
ErrorCount = 0

For I = 1 To 40
    For X = 1 To 1553
        CellValuews1 = ws1.Cells(X, I).Value
        CellValuews2 = ws2.Cells(X, I).Value

        If CellValuews1 = CellValuews2 Then
        Else
            ws1.Cells(X, I).Interior.ColorIndex = 6
            ws2.Cells(X, I).Interior.ColorIndex = 6

            ErrorCount = ErrorCount + 1

        End If
    Next
Next

MsgBox "There were " & ErrorCount & " Cells that didn't match. These are now highlighted yellow"

End Sub