将Excel中的两列从一个工作表匹配到另一个工作表

将Excel中的两列从一个工作表匹配到另一个工作表

我无法比较两个工作表。我有工作表 A 和工作表 B。在每个工作表中,A 列包含客户编号,B 列包含日期。同一客户和同一日期可以出现在不同的行中,但有第三个值可以区分他们为商品支付的价格差额(C 列)。是否有公式或函数可以将两列与另一张工作表中的另外两列进行比较?

答案1

有几种方法可以做到这一点,我喜欢使用 VBA,一个非常基本的例子是:

Sub Macro1()
Dim Sheet1 As Worksheet, sheet2 As Worksheet
Dim result As Long, result2 As Long
Dim duplicated As Boolean
Dim fstrst As Long, lstrst As Long

Set Sheet1 = Workbook1  ' add your workbook here like this
Set sheet2 = Workbook2  ' Workbooks("testbook").Sheets("sheet1")

' this says count the values from row 1 to the end of the data
fstrst = 1
lstrst = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

For result = fstrst To lstrst
    duplicated = False
For result2 = fstrst To lstrst

If Sheet1.Cells(result, 3) = sheet2.Cells(result2, 3) Then
    duplicated = True
    Exit For
     End If

Next result2
If duplicated = True Then
 ' if there are any matching values then duplicated will appear in column C
 Sheet1.Cells(result, 3).Interior.ColorIndex = duplicated

 End If

Next result

End Sub

这将比较多个工作簿并根据任何重复项返回一个值,但可以将其更改为比较更多列、返回不同的值或删除重复项等

基于工作表的示例可以使用嵌入 if 公式的 vlookup 来检查某些条件,例如 =IF(VLOOKUP(A4,Sheet2!A:B,1,0),"Duplicated"," "),这将告诉您是否有任何重复,如果没有,则不显示任何内容。但这一切都取决于您想看到什么。

希望能帮助到你

汤姆

相关内容