如何按 ID 分组并查找日期中的空白以确定 Alteryx 中的开始和结束日期?
Posted
技术标签:
【中文标题】如何按 ID 分组并查找日期中的空白以确定 Alteryx 中的开始和结束日期?【英文标题】:How to group by ID and find gaps in dates to determine start and end date in Alteryx? 【发布时间】:2021-10-14 18:09:20 【问题描述】:我有一个如下所示的数据集;
ID Date
1 2018-07-23
1 2018-07-24
1 2018-07-25
1 2018-07-26
1 2019-12-31
2 2020-01-01
2 2020-01-02
2 2020-01-03
2 2020-01-06
2 2020-01-07
我想要实现的是将此数据集转换为开始和结束日期,无论它们在日期列中是否存在任何间隙。
所以预期的输出如下所示;
ID StartDate EndDate
1 23-07-2018 26-07-2018
1 31-12-2019 31-12-2019
2 01-01-2020 03-01-2020
2 06-01-2020 07-01-2020
如您所见,两个 ID 都有两行,因为日期之间存在间隔。
请帮忙,谢谢。
【问题讨论】:
【参考方案1】:对于 StartDate:使用 MultiRowFormula 工具。在其选项中,按 ID 分组,告诉它默认为最近行的值,并使用类似以下的表达式:
IIF ([Date] == DateAdd([Row-1:Date],'days',1) THEN
[Row-1:StartDate]
ELSE
[Date]
ENDIF
这将为您创建所有 [StartDate],但您仍然会有多行。所以,然后做一个聚合工具:按 ID 和 StartDate 分组,并将 EndDate 创建为 max([Date])。这应该为每个 StartDate 提供正确的 EndDate。
【讨论】:
以上是关于如何按 ID 分组并查找日期中的空白以确定 Alteryx 中的开始和结束日期?的主要内容,如果未能解决你的问题,请参考以下文章