У меня есть следующие данные:
Снимок экрана таблицы Excel
То есть:
Идентификатор получателя || | ID цели (не полезно) ||| Дата
123 ||| 456 ||| 20/01/2020
789 ||| 910 ||| 28/02/2019
Я хотел бы получить дополнительную колонку, в которой для каждого покупателя у меня есть счет, сколько приобретений он совершил за последние 3 года. Поэтому для каждого идентификатора покупателя с указанной датой мне необходимо подсчитать, сколько раз этот идентификатор появляется с датой менее 3 лет от этой даты.
Таким образом, если приобретатель совершил приобретение в 2020 г., 2016 г. , 2015 и 2014, в каждом случае счет будет равен 0, 2, 1, 0 соответственно для данного данного покупателя.
Я пробовал с COUNTIFS (), IF (), VLOOKUP (), но Я не смог получить требуемый результат, так как после выполнения условия он суммирует все идентификаторы независимо от дат.
Я также пытался написать макрос на VBA, но мое знание языка в основном равно 0. Я отправьте код на случай, если он даст лучшее представление о проблеме
Dim Sheet As Worksheet
Set dbs = ThisWorkbook.Sheets("db")
Dim i As Integer, j As Integer, count As Integer
lr = dbs.Cells(Rows.count, 1).End(xlUp).Row
x = 0
For i = 2 To lr
For j = i + 1 To lr
Set myrange = Range("i:lr")
If dbs.Cells(i, 4).Value - Application.WorksheetFunction.VLookup(dbs.Cells(i, 4).Value, myrange, 4, False) < 3 Then
'I get a bug with Application.WorksheetFunction.VLookup, it might be that an error must be dealt with in case of missing values
count = count + 1
End If
Next j
Next i
dbs.Cells(i, 5).Value = count
End Sub
Любая помощь действительно приветствуется, спасибо заранее.