Предполагается, что данные отсортированы по пользователю и дате, как в примере:
=ArrayFormula(to_date(vlookup(row(A2:A),filter({row(A2:A),A2:A},
countifs(row(A2:A),row(A2:A)-1,B2:B,B2:B,A2:A,">"&eomonth(A2:A,-2))=0),2,true)))
Если вы не можете предположить, что данные сортируется по пользователю и дате, вы можете попробовать что-то вроде этого:
=ArrayFormula(vlookup(filter(B2:B&text(A2:A,"YYYYMMDD"),A2:A<>""),
sort(filter({B2:B&text(A2:A,"YYYYMMDD"),A2:A},
countifs(A2:A,"<"&A2:A,B2:B,B2:B,A2:A,">"&eomonth(A2:A,-2))=0,A2:A<>""),1,1),2,true))