Это немного сложно сделать только с формулами.То, что предложил Доминик, решит проблему в первую очередь.Хотя, я полагаю, у этого комментария могут быть проблемы с упоминанием «нескольких строк с одинаковой датой на листе 2».Я думаю, что формулы будут возвращать только первую строку, которая соответствует критериям.
Я вижу, что нет тега VBA, но единственный ответ, который я мог придумать, был сценарий VBA, чтобы обойти эти пункты.Ему также нужен вспомогательный столбец на «Sheet2», чтобы определить, что строка уже проверена, и я установил ее в качестве столбца H (8-й столбец) в моей тестовой электронной таблице.
В случае, если это полезно для вас,пожалуйста, найдите его ниже.
Option Explicit
Sub Worksheet_activate()
Dim b, c, d, x As Integer
Dim a, ab, ac As Worksheet
'Names of the spreadsheets need to be in the speech marks.
Set a = Worksheets("Sheet1") 'Sheet to be compared.
Set ab = Worksheets("Sheet2") 'Sheet to look through and copy from.
Set ac = Worksheets("Sheet3") ' Sheet to be pasted into.
b = a.Cells(a.Rows.Count, "A").End(xlUp).Row 'Bottom date in column A of "Sheet1"
c = ab.Cells(ab.Rows.Count, "A").End(xlUp).Row 'Bottom date in column A of "Sheet2"
d = ac.Cells(ac.Rows.Count, "A").End(xlUp).Row + 1 'Next empty space in column A of "Sheet3"
e = 8 'Number value for the helper column. Set as 8 for column H.
x = 2
Do Until x > c
'Helper column placed in column H.
If ab.Cells(x, e) = "" Then
If WorksheetFunction.CountIf(a.Range("A2:A" & b), ab.Range("A" & x)) >= 1 Then
ab.Rows(x).Copy
ac.Range("A" & d).PasteSpecial xlPasteValuesAndNumberFormats
d = ac.Cells(ac.Rows.Count, "A").End(xlUp).Row + 1
End If
End If
'Text added to helper column
ab.Cells(x, e) = "Yes"
x = x + 1
Loop
Application.CutCopyMode = False
ac.Range("A" & d).Select
End Sub
Для размещения вашей электронной таблицы потребуется отредактировать следующую информацию:
- Измените названия 3 электронных таблиц в речевых метках, например, установите= Worksheets ("Here")
- Измените значение e на номер столбца, в котором находится вспомогательный столбец, т.е. = COLUMN ()
Затем его необходимо добавитьк листу, щелкнув правой кнопкой мыши по листу и скопировав данные и выбрав «Просмотр кода» перед вставкой в открывшееся окно.Код запускается при открытии вкладки, поэтому для ее обновления в некоторых ситуациях может потребоваться переключение.