Предполагается, что данные отсортированы по пользователю и дате, как в примере:
=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)))
![enter image description here](https://i.stack.imgur.com/Zif8y.png)
Если вы не можете предположить, что данные сортируется по пользователю и дате, вы можете попробовать что-то вроде этого:
=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))
![enter image description here](https://i.stack.imgur.com/0knqG.png)