У меня проблемы при сравнении двух таблиц. У меня есть лист 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
Это позволит сравнить несколько рабочих книг и вернуть значение, основанное на любых дублированиях, но его можно изменить, чтобы сравнить больше столбцов, вернуть разные значения или удалить дублирование и т.д.
Пример на основе рабочего листа может использовать vlookup со встроенной формулой if для проверки определенных критериев, например, = IF(VLOOKUP(A4, Sheet2!)A:B, 1,0), "Duplicated", "") это скажет вам, если что-то было продублировано, и если ничего не показано. Но все зависит от того, что вы хотите увидеть.
Надеюсь, поможет
Том