我正在寻找帮助。我在Excel中预定了一件设备的日期非常长。
我想做的是在列表中搜索设备(工具1),然后查看与之关联的所有日期。如果要考虑日期,那么我想将它们分组在一起,并返回该组的开始日期和结束日期(期间)。如果间隔为1天或更长时间,则它将查找下一组连续日期,将其分组并返回该时间段的开始日期和结束日期。同样地,如果只有一天,它将返回该日期作为开始和结束日期。...例如,我有这个
Date Equipment
01/01/2019 Tool1
02/01/2019 Tool1
03/01/2019 Tool1
04/01/2019 Tool1
06/01/2019 Tool1
10/01/2019 Tool1
11/01/2019 Tool1
12/01/2019 Tool1
13/01/2019 Tool1
14/01/2019 Tool1
16/01/2019 Tool2
17/01/2019 Tool2
最后我要说的是...
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
同样,设备清单将改变,某些日期可能会重叠,因为它们可以同时预订-但我将它们分开列出-因此每个设备清单都有一个表,列。 / p>
这有可能吗?请帮助,如果您需要我进一步解释,请让我知道.....
答案 0 :(得分:1)
请记住,这是一个非常的粗糙示例,我敢肯定社区中的其他一些成员可以创建一个更加优雅的解决方案,但这是一种解决方法:>
A列-日期,必须将其组织起来才能使该解决方案生效。这可以通过Excel排序/过滤器来实现。
B列-工具。在此解决方案中,我没有考虑工具1与工具2。但是,也许您将能够在不同的工作表中将工具彼此分开?也许您可以想出一种巧妙的方法来考虑该工具。
C列-检查A列的日期是否紧随前一个日期,从而使其成为时间段的一部分。
D列-检查A列日期是否为时间段的开始日期。
E列-检查A列日期是否为时间段的结束日期。
F列-检查A列日期是否同时是时间段的开始和结束。即该工具只租一天吗?
G列-生成与开始日期相关的文本。
H列-生成与结束日期相关的文本。
第I列-组合G列和H列中的文本以创建一列时间块信息。现在我们只需要删除日期信息之间的空白块(即空白)。
如果我们使用TEXTJOIN
函数删除空白,然后删除我们不希望使用的CHAR(10)
,则可以得到如下内容:
同样,这是一个非常粗糙的示例,但我希望它能帮助您走上正确的轨道!