Предыдущая дата с условием Google Spreadsheet формула - PullRequest
1 голос
/ 07 апреля 2020

У меня есть список пользователей с датами посещения сайта. Мне нужно рассчитать дату первого посещения для каждой записи с условием, что если пользователь пропустит месяц, он будет считаться новым, а дата должна быть новой. Как я могу рассчитать это?

Вот пример. Мне нужно рассчитать столбец «Первое посещение».

Visit Date  User    First visit
10/15/19    User1   10/15/19
11/13/19    User1   10/15/19
01/07/20    User1   01/07/20
02/03/20    User1   01/07/20

1 Ответ

2 голосов
/ 07 апреля 2020

Предполагается, что данные отсортированы по пользователю и дате, как в примере:

=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

Если вы не можете предположить, что данные сортируется по пользователю и дате, вы можете попробовать что-то вроде этого:

=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

...