我正在寻求一些帮助。我在 Excel 中有一长串设备预订日期。
我想做的是在列表中搜索该设备(工具 1),然后查看与其关联的所有日期。如果日期是结果,那么我想将它们分组在一起并返回该组(期间)的开始和结束日期。如果有 1 天或更多的间隔,那么它将查找下一组连续日期,对这些日期进行分组并返回该期间的开始日期和结束日期。同样,如果只是一天,那么它会返回该日期作为开始和结束日期......作为一个例子,我有这个
日期 | 设备 |
---|---|
2019/01/01 | 工具1 |
2019/02/01 | 工具1 |
2019/03/01 | 工具1 |
2019/04/01 | 工具1 |
2019/06/01 | 工具1 |
2019年10月1日 | 工具1 |
2019年11月1日 | 工具1 |
2019/01/12 | 工具1 |
2019/01/13 | 工具1 |
2019/01/14 | 工具1 |
16/01/2019 | 工具2 |
2019/01/17 | 工具2 |
我想要的最终结果是......
Equipment Start Date End Date
Tool 1 01/01/2019 04/01/2019
Tool 1 06/01/2019 06/01/2019
Tool 1 10/01/2019 14/01/2019
Tool 2 16/01/2019 17/01/2019
同样,设备会在列表中发生变化,并且某些日期可能会重叠,因为它们可以同时预订 - 但我会单独列出它们 - 因此每个单独的设备都有一个表格和列。
这有可能吗?请帮忙,如果您需要我进一步解释,请告诉我......
请记住,这是一个非常粗略的示例,我确信社区中的其他一些成员可以创建一个更优雅的解决方案,但这是一种实现它的方法:
A 列 - 日期,必须组织好日期才能使该解决方案发挥作用。这可以通过 Excel 排序/过滤器来实现。
B 栏 - 工具。在此解决方案中,我没有考虑 Tool1 与 Tool2。但是,也许您可以在不同的工作表中将工具彼此分开?或者也许您可以想出一个巧妙的方法来考虑该工具。
C 列 - 检查 A 列日期是否紧随前一日期,从而使其成为时间块的一部分。
D 列 - 检查 A 列日期是否是时间块的开始日期。
E 列 - 检查 A 列日期是否是时间块的结束日期。
F 列 - 检查 A 列日期是否同时是时间块的开始和结束。 IE。该工具只租一天吗?
G 列- 生成与开始日期相关的文本。
H 列- 生成与结束日期相关的文本。
I 列- 组合 G 列和 H 列中的文本以创建单列时间块信息。现在我们只需要删除日期信息之间的空白块(即空白)。 如果我们使用
TEXTJOIN
函数删除空格,然后删除我们不想要的
CHAR(10)
,我们可以得到如下所示的结果:再次强调,这是一个非常粗略的示例,但我希望它可以帮助您走上正轨!