条件为 Google 的上一个日期电子表格公式

Previous date with condition Google Spreadsheet formula

我有一个用户列表,其中包含他们访问该网站的日期。我需要计算每条记录的首次访问日期,条件是如果用户错过一个月,则认为是新的,日期应该是新的。 我该如何计算?

这是一个例子。我需要计算“首次访问”列。

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

假设数据按用户和日期排序,如示例所示:

=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))