在Excel中比较数据

cetgtptt  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(98)

我已从开发SQL Server和生产SQL Server导出CSV文件。
该表(在数据库中)有两列
1.用户ID
1.文档ID
这两个值都应该是唯一值。
我希望能够验证这两个组合(一起)是否匹配其他环境。
到目前为止,我在Excel中的单独工作表中导入了这两个CSV文件。在此之后,我不确定我应该做些什么来比较这些列?
我做了一个小谷歌,有这么多不同类型的答案,但不知道如何做到这一点。
条件格式仅在选择单列时有效。我需要获取两列的组合。

rdlzhqv9

rdlzhqv91#

你所描述的是我每天为工作所做的事情:

步骤1

在两个工作表中创建名为“Key”的第3列,在该列中,您将按如下方式连接A列和B列的值:=A2&B2。现在,用前面编写的公式自动填充C列中的行。

步骤2

删除在您创建的列中找到的重复项,这将有效地保留对并防止删除重复值时的信息丢失。(数据选项卡-〉删除重复项-〉选择列C作为删除它们的条件)。

步骤3

在第一个工作表的第4列中进行Vlookup,该函数需要4个参数:=vlookup(C2, <4th column of the other worksheet (select entire range from row 2 to end)>, 1, 0)并使用公式自动填充行。
如果你还不熟悉vlookup,我强烈建议你看一个简短的教程来了解它的用法,它是比较数据的一个重要工具。
将显示任何匹配的值,而对于两个表之间不匹配的值,将打印**#N/D**错误。

dl5txlt9

dl5txlt92#

一个快速而又有点脏的VBA方法。我假设你的工作簿由两个工作表组成,每个工作表包含两列标题。

Option Explicit
Sub SoftwareIsFun()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim dicObj As Object
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim i As Long

    Set dicObj = CreateObject("Scripting.Dictionary")
    Set wks1 = ThisWorkbook.Worksheets(1)
    Set wks2 = ThisWorkbook.Worksheets(2)
    
    With wks1
        lastRow1 = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To lastRow1
            If Not dicObj.Exists(.Range("A" & i).Value) Then
                dicObj.Add .Range("A" & i).Value, .Range("B" & i).Value
            Else
                .Range("C" & i).Value = "UserID already exists"
            End If
        Next i
    End With
    
    With wks2
        lastRow2 = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 2 To lastRow2
            If dicObj.Exists(.Range("A" & i).Value) Then
                If .Range("B" & i).Value = dicObj.Item(.Range("A" & i).Value) Then
                    .Rows(i).Interior.Color = vbGreen
                Else
                    .Rows(i).Interior.Color = vbRed
                End If
            Else
                .Rows(i).Interior.Color = vbRed
            End If
        Next i
    End With
End Sub

相关问题